Программа крашится при освобождении памяти - 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..";