[C] Выделение памяти из функции15.09.03 10:15 Число просмотров: 1207 Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman Отредактировано 15.09.03 10:17 Количество правок: 1
> > А надо так: > > > > void func(char *&d, char *s) { > > спасибо. а почему именно так?
Можно еще void func( char **d, char *s);
Вызов, соответственно, func( &srtu...
Почему: передали функции указатель (не имеет смысла, если она его сразу "запарывает") в переменной d, ну изменила она этот параметр,присвоив то, что маллок вернул, указатель на строку в main не измениться. Указатель на строку в структуре в функции main она не изменит, потому, что не передался его адрес, передалось в функцию только его значение. Как изменить из вызываемой функции указатель - надо передать указатель на этот указатель.
> > А надо так: > > > > void func(char *&d, char *s) { > > спасибо. а почему именно так?
Можно еще void func( char **d, char *s);
Вызов, соответственно, func( &srtu...
Почему: передали функции указатель (не имеет смысла, если она его сразу "запарывает") в переменной d, ну изменила она этот параметр,присвоив то, что маллок вернул, указатель на строку в main не измениться. Указатель на строку в структуре в функции main она не изменит, потому, что не передался его адрес, передалось в функцию только его значение. Как изменить из вызываемой функции указатель - надо передать указатель на этот указатель.