Структура двойной ссылки на ошибку в C - PullRequest
0 голосов
/ 10 ноября 2010

Я озадачен ошибками, которые я получаю, ссылаясь на членов структуры.

У меня есть такая структура,

typedef struct
{

    Int32      *pInAddr[2];
    Int32      a;

}JobInfo_t;

typedef struct
{

    ULUnitJobInfo_t               JobInfo[MAX_JOBS_PER_CORE];
}DispatchInfo_t;

DispatchInfo_t *ptr,temp;
ptr=&temp;
Fun(ptr) //Fun is some function

Я передаю это в функцию Fun.c as

Fun ( *ptr)
{

я получаю ошибку при инициализации

    ptr->JobInfo[0]->pInAddr[0]=0;
    ptr->JobInfo[0]->a=0;
}

ошибка: выражение должно иметь тип указателя

Тогда я не знаю, как получить доступ к массиву указателей внутри указателя структуры или получить доступ к простым данным (a) из указателя структуры?

Еще один вопрос: Если я попытаюсь получить доступ Int32 temp = ptr-> JobInfo [0] .pInAddr [0]; Это дает мне сообщение

«Выражение должно иметь изменяемое значение l»

1 Ответ

2 голосов
/ 10 ноября 2010

JobInfo - это массив JobInfo_t, а не массив указателей.

Попробуйте это:

ptr->JobInfo[0].pInAddr[0]=0; ptr->JobInfo[0].a=0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...