Структура двойной ошибки ссылки в C

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

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

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 как

Fun ( *ptr)
{

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

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

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

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

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

"Выражение должно иметь модифицируемое значение l"


person user437777    schedule 10.11.2010    source источник
comment
и, пожалуйста, научитесь форматировать свой код при публикации   -  person Paul R    schedule 10.11.2010
comment
Приношу свои искренние извинения, я новичок на форуме. как вы принимаете? я не вижу ни одной ссылки   -  person user437777    schedule 10.11.2010
comment
чтобы принять ответ, просто щелкните изображение V, как рядом с вкладкой «Ответы», вы также можете проголосовать за или против или прокомментировать все другие ответы. Вы можете принять только один ответ на вопрос. Stack Overflow (SO) напомнит вам, если вы не принимаете какие-либо ответы, но это занимает некоторое время. Там еще много крутых вещей, куча правил, репутации, значков, баунти и куча информации. просто просмотрите верхнюю часть вкладок экрана, чтобы найти все это :) Добро пожаловать в ТАК, кстати.   -  person Proclyon    schedule 10.11.2010
comment
Большое спасибо, Проклион, ценю ваш ответ и подробный ответ...   -  person user437777    schedule 10.11.2010


Ответы (1)


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

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

ptr->JobInfo[0].pInAddr[0]=0; ptr->JobInfo[0].a=0
person Nicolas Repiquet    schedule 10.11.2010
comment
привет Николас, я обновил свой вопрос. Я передаю указатель структуры на функцию. после применения ваших изменений ptr->JobInfo[0].a=0 теперь работает, но я все еще получаю ту же ошибку для ptr->JobInfo[0].pInAddr[0]=0 - person user437777; 10.11.2010
comment
Я не знаю, что ты хочешь сделать на самом деле. Установить для pInAddr[0] значение null? - person Nicolas Repiquet; 10.11.2010
comment
Привет Николас, я просто хочу инициализировать массив указателей на некоторые адреса. Массив указателей предназначен для хранения двух адресов. Я пытался их инициализировать. - person user437777; 10.11.2010