понедельник, 25 мая 2009 г.

Строки в С

Строка в С, да и в С++, зачастую определяется как массив из символов, статический или динамический. А заканчиваться такая строка должна нуль-символом \0. Все знают, но забывают. А когда работа идёт с заведомо квадратной матрицей, то так и тянет выделять память n*n, но нет! Надо делать исключительно так:

char** matr;
matr = new char*[n];
for (int i = 0; i
matr[i] = new char[n+1];
matr[i][n] = '\0';
}


Иначе проблем в деструкторе, который будет освобождать всё, пока нуль-символ случайно не встретит, будет много

Комментариев нет:

Отправить комментарий