Программа крашится при освобождении памяти - 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..";
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д