Я программирование на C.прохода по ссылке, но значение параметра равно нулю
У меня есть:
-структураstruct MY_TYPE {
boolean flag;
short int value;
double stuff;
};
У меня есть функция, которая принимает указатель на указатель MY_TYPE
в качестве параметра:
getData(struct MY_TYPE ** m_type) {
// I initialise an object of MY_TYPE
struct MY_TYPE a = {.value = 123};
// I assign the address of above object to a pointer of MY_TYPE
struct MY_TYPE *p = &a;
// I assign the address of above pointer to parameter
m_type = &p;
}
В моей основной программе, я называю выше функции:
struct MY_TYPE *my_param;
getData(&my_param);
// I set a break pointer here, and it shows me my_param is NULL, why?
После того, как я вызвал getData (...), параметр, который я прошел, является NULL, почему?
Вы знаете что-то о локальном scoped var ..... – LPs
Независимо от того, что переменная 'a' является локальной функцией getData(), поэтому вы не должны ее возвращать (или указатель на нее или худший указатель на указатель, который также является локальной переменной). – hexasoft