2010-11-10 2 views
0

Я озадачен ошибками, которые я получаю для ссылок на элементы структуры.Структура двойная Ошибка ссылки в 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]; Это дает мне сообщение,

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

+2

и узнавайте форматировать код при проводке –

+0

Мои искренние извинения, я новичок на форуме. как вы принимаете? я не вижу никакой ссылки – user437777

+0

, чтобы принять ответ, просто нажмите на V-образное изображение рядом с вкладкой «Ответы», вы также можете проголосовать вверх или вниз или прокомментировать все остальные ответы. Вы можете принимать только один ответ на вопрос. Переполнение стека (SO) будет напоминать вам, если вы не принимаете какие-либо ответы, но это занимает некоторое время. Там много более классных вещей, множество правил, репутация, значки, щедрости и тонны информации. просто просмотрите верхнюю часть вкладок экрана, чтобы найти все это :) Добро пожаловать в SO btw. – Proclyon

ответ

2

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

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

ptr->JobInfo[0].pInAddr[0]=0; ptr->JobInfo[0].a=0 
+0

привет николас, я обновил свой вопрос. Я передаю указатель структуры функции. после применения ваших изменений, ptr-> JobInfo [0] .a = 0 теперь работает, но я все равно получаю ту же ошибку для ptr-> JobInfo [0] .pInAddr [0] = 0 – user437777

+0

Я не сейчас, что вы хотите сделать действительно. Установить pInAddr [0] на null? –

+0

Привет, Nicolas, я просто хочу инициализировать массив указателей на некоторые адреса. Массив указателя предназначен для хранения двух адресов. Я пытался их инициализировать. – user437777

Смежные вопросы