Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Ада и другие языки _ Вызвращаемое функцией значение

Автор: Scorp_Freeman 1.11.2007 4:33

Можно ли так? :

char** ddd(int u){
char* ccc=new char [5];
ccc="fff/n";
return &ccc;
}


А вызов:
  char ** r;
r=ddd(ch);
cout<<r;



В итоге на экране не то что я хотел бы dry.gif .

Можно ли делать?:
 char* ccc=new char [5];
return &ccc;


Если нет то как возратить указатель на строковый массив, размер которого определяется в самой функции ddd ?

Автор: volvo 1.11.2007 4:43

Цитата
Можно ли так?
На Warning-и компилятора почему внимание не обращаем? Ясно же сказано:
"warning: address of local variable 'ccc' is returned"... Естественно, ты получаешь мусор...

Возвращай просто char*...

char* ddd(int u) {

char* ccc=new char [5];
ccc="fff/n";
return ccc;

}

...
char *r = ddd(ch); // чем не указатель?

Автор: Scorp_Freeman 1.11.2007 5:01

Оооо ! Спасибо! Просто я си только изучаю, а этими указателями можно и голову "поломать" smile.gif