И чем же это будет более правильно?
1) int a[10] не будет инициализирован нулями. Чтобы он был инициализирован, нужно хотя бы написать int a[10] = {0}; (в с++ все сложнее, но тут вроде речь о С)
Ваш же calloc предоставит гарантированно обнуленную память
2) calloc, как и все средства выделения памяти в С, возвращает void*. Вы не можете просто так положить его в int*, нужен каст (ЕМНИП, некоторые компиляторы позволяют сделать это без каста, но это все равно неправильно)
3) Если вы намекаете на то, что у calloc'a есть явное указание количества элементов, как и у массива — ну, а на что оно влияет? Так или иначе размер указывается через sizeof, а не просто через количество элементов.
И размер выделенного массива у calloc и у malloc все равно будет одинаковый.
Кроме того, оба варианта неправильные, потому что при объявлении "int a[10]" тип переменной совсем не int*. Правильный тип переменной: int (*const)[10].
/zanuda_mode off
ипать тю Люсю... спасибо разрабам PHP что они не внедрили #define туда... и так хуйни много написать можно, так ещё и искать какой-то скрытый define в одном из include это ж жопа будет )
IT-юмор
5.6K постов52.5K подписчика
Правила сообщества
Не публикуем посты:
1) с большим количеством мата
2) с просьбами о помощи
3) не относящиеся к IT-юмору