Использование указателя после его освобождения с помощью free () - PullRequest
5 голосов
/ 16 августа 2011

У меня проблемы с кодом следующего типа:

int* myPointer1 = malloc(50 * sizeof(int));
int* myPointer2 = malloc(50 * sizeof(int));
free(myPointer1);
myPointer1 = myPointer2;
myPointer1[0] = 3;

У меня ошибка сегментации.В чем проблема?

Ответы [ 2 ]

3 голосов
/ 16 августа 2011

Проблема не в этом коде. Размещенный вами фрагмент кода выглядит правильно и работает изолированно.

2 голосов
/ 16 августа 2011

Ваш код верен, в этом нет ничего плохого, но у вас есть привычка проверять возвращаемое значение функции malloc (), если оно равно NULL, это создаст проблему в вашей программе, в нашем случае распределение памяти с помощью malloc () функция не выполнена

...