Передача указателя в функцию, присвоение адреса переменной и возврат - C (СИ)
Формулировка задачи:
Добрый день, подскажите, почему в отладке в функции указателю адрес переменной присваивается корректно, но при возврате указатель смотрит по прежнему адресу (здесь на NULL, скажем). необходимо получить адрес структуры g_Prm. Возврат return-ом не интересует. Именно такая конструкция. Или необходимо использовать указатель на указатель?
TStructParam g_Prm; void GetParam (TStructParam *apPtr) { apPtr = &g_Ptr; } int main () { TStructParam *tCurPrm = NULL; GetParam (tCurPrm); return 1; }
Решение задачи: «Передача указателя в функцию, присвоение адреса переменной и возврат»
textual
Листинг программы
TStructParam g_Prm; void GetParam (TStructParam **apPtr) { *apPtr = &g_Ptr; } int main () { TStructParam *tCurPrm = NULL; GetParam (&tCurPrm); return 1; }
Объяснение кода листинга программы
- Объявляется структура TStructParam и переменная g_Prm типа TStructParam.
- Функция GetParam принимает указатель на указатель на структуру TStructParam.
- Внутри функции GetParam указатель на переменную g_Prm передается в функцию apPtr.
- Указатель на переменную g_Prm присваивается значению указателя на переменную tCurPrm.
- Вызывается функция GetParam и передается указатель на переменную tCurPrm.
- В функции main возвращается 1.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д