Как динамически выделить память для двумерного массива char

zexis
На сайте с 09.08.2005
Offline
388
2665

Язык С.

Вот небольшой код, который выделяет статически память под 2-х мерный массив char.

int n;

char v[][10]={"green","red","blue"};

for(n=0;n<3;n++)

printf("%s\n",v[n]);

Печатает

green

red

blue

Как сделать тоже самое, но память выделять под массив функцией malloc?

Нужно следующее

1. Определить указатель на двумерный массив char, без выделения памяти на сам массив

2. Выделить память под 2-х мерный массив функцией malloc

3. Обратится к элементам массива через указатель.

zexis добавил 05.12.2009 в 15:55

решение нашел

char (*v)[][10];

v = (char (*)[][10])malloc(100);

strcpy(((*v)[0]), "green");

strcpy(((*v)[1]), "red");

strcpy(((*v)[2]), "blue");

Странно, что такой конструкции я не нешел ни в одном учебнике по С

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий