Согласно этой ветке комментариев reddit, не определено, если попытка чтения памяти была сделана раньше это было написано. Я имею в виду нормальную память кучи, которая была успешно malloc
использована.
... обратите внимание, что это не строго допустимый C: компилятор / исполняющая система может инициализировать неинициализированную память с так называемыми представлениями ловушек, которые вызывают неопределенное поведение при доступе.
Мне трудно в это поверить. Есть ли стандартная цитата?
Конечно, я понимаю, что нет гарантии, что память обнулилась. Значения в этой неинициализированной памяти по существу псевдослучайны или произвольны. Но я действительно не могу поверить, что в Стандарте это будет называться неопределенным поведением (в том смысле, что это может быть segfault, или удалить все ваши файлы, или что-то еще). Остальная часть ветки Reddit не пролила больше света на эту проблему.
calloc
- ваш друг. - person undur_gongor   schedule 10.02.2012