Должен ли я проверить, был ли malloc () успешным?

Нужно ли после каждого malloc () проверять, был ли он успешным? Возможно ли, что malloc () потерпит неудачу? Что происходит потом?

В школе нам сказали, что мы должны проверить, т.е.

arr = (int) malloc(sizeof(int)*x*y);
if(arr==NULL){
    printf("Error. Allocation was unsuccessful. \n");
    return 1;
}

Какова практика в этом отношении? Могу ли я сделать это так:

if(!(arr = (int) malloc(sizeof(int)*x*y))
    <error>

Ответы на вопрос(2)

Ваш ответ на вопрос