Ошибка при объявлении динамического массива
От: Froland  
Дата: 01.05.03 15:03
Оценка:
Вот такая ситуация:
Нужно объявить динамич. массив хранящий указатели на строки.
Статический:
char *s=”test”, *str[5];
str[0]=s; //всё ок
Динамический:
char *str = new char[5];
str[0]=s; // error C2440: '=' : cannot convert from 'char *' to 'char'
Подскажите, пожалуйста, где я набредил?!
Re: Ошибка при объявлении динамического массива
От: Jenyay http://jenyay.net
Дата: 01.05.03 16:52
Оценка:
Здравствуйте, Froland, Вы писали:

F>Вот такая ситуация:

F>Нужно объявить динамич. массив хранящий указатели на строки.
F> Статический:
F> char *s=”test”, *str[5];
F> str[0]=s; //всё ок
F> Динамический:
F> char *str = new char[5];
F> str[0]=s; // error C2440: '=' : cannot convert from 'char *' to 'char'
F>Подскажите, пожалуйста, где я набредил?!

Может, попробовать char **str = new (*char)[5];

Там ведь должен быть 2-мерный массив, а у Вас — одномерный получается, как строка. В статическом было *str[5], а тут стало просто *str.
... << RSDN@Home 1.0 beta 6a >>
Софт, исходники и фото
Re[2]: Ошибка при объявлении динамического массива
От: Froland  
Дата: 01.05.03 23:39
Оценка:
Здравствуйте, Jenyay, Вы писали:

J>Может, попробовать char **str = new (*char)[5];


J>Там ведь должен быть 2-мерный массив, а у Вас — одномерный получается, как строка. В статическом было *str[5], а тут стало просто *str.

Пробую... вываливает — error C2062: type 'char' unexpected, а за ней еще 100 ошибок:(
Re[2]: Ошибка при объявлении динамического массива
От: Froland  
Дата: 02.05.03 00:49
Оценка:
Здравствуйте, Jenyay, Вы писали:


J>Может, попробовать char **str = new (*char)[5];


J>Там ведь должен быть 2-мерный массив, а у Вас — одномерный получается, как строка. В статическом было *str[5], а тут стало просто *str.

Все впорядке, просто мой компилятор понимает не char **str = new (*char)[5];
а char **str = new char*[5];
Спасибо!
Re[3]: Ошибка при объявлении динамического массива
От: Bell Россия  
Дата: 02.05.03 06:24
Оценка: :)
Здравствуйте, Froland, Вы писали:

F>Здравствуйте, Jenyay, Вы писали:



J>Может, попробовать char **str = new (*char)[5];


J>Там ведь должен быть 2-мерный массив, а у Вас — одномерный получается, как строка. В статическом было *str[5], а тут стало просто *str.

F>Все впорядке, просто мой компилятор понимает не char **str = new (*char)[5];
F> а char **str = new char*[5];
F> Спасибо!

Было бы просто удивительно, если бы он понял первый вариант
Любите книгу — источник знаний (с) М.Горький
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.