Я получил комментарий к моему ответу на эту тему:
Похоже, что Malloc внутри вызова функции освобождается при возврате?
Короче у меня был такой код:
int * somefunc (void)
{
int * temp = (int*) malloc (sizeof (int));
temp[0] = 0;
return temp;
}
Я получил этот комментарий:
Могу я просто сказать, пожалуйста, не разыгрывайте
возвращаемое значение malloc? Это не
требуется и может скрывать ошибки.
Я согласен, что приведение не требуется в C. Это обязательно в C ++, поэтому я обычно добавляю их на тот случай, если мне придется портировать код на C ++ однажды.
Однако мне интересно, как такие приведения могут скрывать ошибки. Есть идеи?
Edit:
Похоже, с обеих сторон есть очень хорошие и веские аргументы. Спасибо за публикацию, ребята.