Массив строк в С/С++

Рейтинг: 0Ответов: 1Опубликовано: 26.01.2011

Итак, в С/С++ массив строк мы создаем следующим образом

char ** ptr = new char*[n];
for (int i = 0; i < n; ++i) 
    ptr[i] = new char[m];

В результате получаем n строк по m символов в каждой строке. Для передвижения по строке мы можем воспользоваться следующей конструкцией

while( ptr[i] != NULL && *ptr[i] != '\0') {
    // Делаем нечто
    ++p[i];
}

По сути мы смотрим, встретился ли нам символ окончания строки. Мы можем передать сроку в ф-ю без передачи ее длины, и перебрать все символы в строке. Вопрос такой, как сделать подобный механизм для перебора строк в массиве?

Ответы

▲ 4

Что то типа такого.

static char end[] = "end";
char ** ptr = new char*[n+1];
for (int i=0; i<n; ++i)
   ptr[i] = new char[m];
ptr[n] = end; // как альтернатива '= NULL'