Строки в С
Строка в С, да и в С++, зачастую определяется как массив из символов, статический или динамический. А заканчиваться такая строка должна нуль-символом \0. Все знают, но забывают. А когда работа идёт с заведомо квадратной матрицей, то так и тянет выделять память n*n, но нет! Надо делать исключительно так:char** matr; matr = new char*[n];
for (int i = 0; i
matr[i] = new char[n+1];
matr[i][n] = '\0';
}
Иначе проблем в деструкторе, который будет освобождать всё, пока нуль-символ случайно не встретит, будет много
Комментариев нет:
Отправить комментарий