Передача указателя в функцию, присвоение адреса переменной и возврат - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д