LINUX.ORG.RU

История изменений

Исправление grem, (текущая версия) :

имеется ввиду, что если туда добавить

free(a);

a[11][0]  = 500000.0;
printf("a[11][0] = %4.2f\n", a[11][0]);
a[0][11]  = a[11][0] + 1100000.0;
printf("a[0][11] = %4.2f\n", a[0][11]);

то всё спокойно отрабатывает и выводит новые значения на экран. Можно, конечно, сразу после вызова free(a) добавить на всякий случай «a = NULL», тогда да, будет падать при попытке записать в что-нибуль в элемент массива. Почему-то фраза

Для избежания повреждения кучи некоторые руководства по языку Си рекомендуют обнулять каждый освобождаемый указатель."

попалась пока только в википедии о_О

Исходная версия grem, :

имеется ввиду, что если туда добавить

free(a);

a[11][0]  = 500000.0;
printf("a[11][0] = %4.2f\n", a[11][0]);
a[0][11]  = a[11][0] + 1100000.0;
printf("a[0][11] = %4.2f\n", a[0][11]);

то всё спокойно отрабатывает и выводит новые значения на экран. Можно, конечно, сразу после вызова free(a) добавить на всякий случай «a = NULL», тогда да, будет падать при попытке записать в что-нибуль в элемент массива. Почему-то фраза «Для избежания повреждения кучи некоторые руководства по языку Си рекомендуют обнулять каждый освобождаемый указатель.» попалась пока только в википедии.