У меня есть эта структура:Проблема с ошибкой сегментации
typedef struct Msg
{
MsgType msgType;
INT msgLen;
VOID *pMessage;
UINT No;
}Msg;
Я определил указатель:
Msg *startPointer = NULL;
Тогда я делаю:
startPointer = (Msg *)RxBufferArray[trackSN].IntMsg;
Где
RX_BUFFER_STRUCT RxBufferArray[100];
И
typedef struct RX_BUFFER_STRUCT_T {
UINT seqNum;
Msg *IntMsg;
} RX_BUFFER_STRUCT;
Тогда я делаю:
temp = (U32 *)startPointer->pMessage;
Что дает мне ошибку сегментации. Значение RxBufferArray [trackSN] .IntMsg является 0x0 (от БГД), и trackSN равен 1.
Как только я попал заявление: температура = (U32 *) startPointer-> pMessage;, когда я пытаюсь напечатать значение startPointer-> pMessage, он говорит: не удается получить доступ к памяти по адресу 0x8
Любая помощь в решении вопроса?
указатель указывает на не обеспечивается. – BLUEPIXY
Где вы инициализировали массив 'RxBufferArray'? если вы не инициализируете, вы столкнетесь с такими обстоятельствами. – Dipto
где вы выделяете память для 'RxBufferArray [trackSN] .IntMsg'? – Heeryu