Программа крашится при освобождении памяти - C (СИ)
Формулировка задачи:
Всем привет.
Хочу подгрузить слова. У каждого слова - 3 вариации. Реализовал через динамический массив.
Этот кусок компилируется, запускается. Слова подгружаются нормально.
Но при высвобождении памяти крашится на первом free();
Чет не соображу что не так. На int тоже самое работает. Подскажите, пожалуйста, в чем ошибка?
#include <stdlib.h> #include <limits.h> void main(void) { int qtyMAX = 2; char ***string = malloc(qtyMAX * sizeof *string); for (int i = 0; i < qtyMAX; ++i) { string[i] = malloc(3 * sizeof **string); for (int j = 0; j < 3; ++j) string[i][j] = malloc(UCHAR_MAX * sizeof ***string); } int qty = 0; string[qty][0] = "00.."; string[qty][1] = "01..."; string[qty++][2] = "02...."; string[qty][0] = "10..."; string[qty][1] = "11.."; string[qty++][2] = "12.."; for (int i = 0; i < qtyMAX; ++i) { for (int j = 0; j < 3; ++j) { free(string[i][j]); } free(string[i]); } free(string); }
Решение задачи: «Программа крашится при освобождении памяти»
textual
Листинг программы
string[qty][0] = "00..";
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д