我需要訪問從指針指向結構的2維數組,但我不能 看到存儲在此數組中的值。 我使用的方法thta在這裏提出通過指針訪問二維數組(這裏描述的是Create a pointer to two-dimensional array) 結構封裝在2個進程之間的碎片內存區域。 該結構包含浮點數的二維數組。 altoght在二維數組的第一個數組中存儲值,在函數foo中讀取的值爲0。 這是正確的訪問模式? 是不同的是由於訪問是通過雙指針機制的事實? (使用箭頭符號)指向2維數組
typedef struct
{
float32 Position[3];
float32 MODE[4];
float32 GeneralInfo;
float32 COLOR [8][3];
} tsInputData;
typedef float32 array_of_3_float32[3];
array_of_3_float32 *p_Color;
float32* p_Position;
float32* p_Mode;
float32* p_GeneralInfo;
void Init_Host(void* InData)
{
pData = (tsInputData*)InData;
p_Position = pData->Position;
p_Mode = pData->MODE;
p_GeneralInfo = &(pData->GeneralInfo);
p_Color = pData->COLOR;
}
int foo()
{
float32 var = p_Color[0][0];
}
它應該是「C99及以上」,我認爲。 –
可變長度數組在C 1999中是強制性的。C 2011使它們成爲可選項。 –