Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Оператор new [] и параметр функции |
Автор: Duplet 22.9.2006, 08:23 |
Почему не работает?? void f(char *p) { p = new char[20]; } void main() { char *t; f(t); // удаляем указатель } |
Автор: Kuvaldis 22.9.2006, 08:32 | ||||
Duplet А не работает потому, что при передаче параметров в С/С++ передается КОПИЯ параметра. В теле функции ты копии выделил память, но при возвращении из функции значение указателя восстановилось старое. выход 1. Передать указатель по ссылке (больше к С++) (если знаешь Паскаль - то это var)
Классический вариант = передать указатель на указатель. В соответствии с идиомами языка С изменить можно только ту переменную, у которой ты знаешь ее адрес
|
Автор: Duplet 22.9.2006, 08:53 |
Благодарствую |