Я пытаюсь понять кусок кода. У меня есть структура, и я создаю переменную структуры глобально, и я передаю адрес созданной переменной структуры различным функциям. в REC_createInstance я назначаю значение oil_qty как 5. в REC_testInstance я пытаюсь прочитать значение oil_qty, например) В этом случае это работает. когда создается структурная переменная. и значения, присвоенные переменным структуры внутри функции, сохраняются через программу.
t_REC_instance instance;
void main()
{
REC_createInstance(&instance);
REC_testInstance(&instance);
}
Но в приведенном ниже коде, когда создается указатель структуры, и я передаю его функции, я не могу прочитать значение oil_qty в REC_testInstance, которое было присвоено в REC_createInstance.
t_REC_instance *instance; // structure pointer is created
void main()
{
REC_createInstance(instance);
REC_testInstance(instance);
}
int REC_createInstance(t_REC_instance* instance)
{
instance = malloc(sizeof(t_REC_instance)); //code needed when structure pointer is created
instance->currentRecipe =REC_Alloc();
if (!instance->currentRecipe)
{
return -5;
//BEF_EHJ_LOG(-5, destroy_ctx);
}
instance->currentRecipe->tAppBread.oil_qty=5;
return 0;
destroy_ctx:
return -5;
}
int REC_testInstance(t_REC_instance* instance)
{
int var=instance->currentRecipe->tAppBread.oil_qty;
}
Что происходит при создании указателя структуры? почему я не могу прочитать значение oil.qty, заданное в REC_createInstance, в другой функции? Спасибо за обмен знаниями.