我有一個結構如下傳遞數組元素(結構)的功能
typedef struct _someStruct
{
int V1;
char V2[10];
} SomeStruct;
SomeStruct *struct;
int elemNo = FillStruct(&struct);
for (i=0; i<elemNo; i++)
PrintElem(&struct[i]);
功能PrintElem是如下:
void PrintElem(SomeStruct *s)
{
printf("\n\tV1 : %d\n\tV2 : %s\n", s->V1, s->V2);
}
代碼在環路出故障時從2'n或3' rd元素。
有什麼不對的建議嗎?
編輯: 其實PrintElem是(我做了這樣的reasoin的事實是,真正的結構有名稱很長的約30場,所以我把它使代碼可讀性):
void PrintElem(SomeStruct *s)
{
printf(
"\n\tV1 : %d"
"\n\tV2 : %s\n",
s->V1, s->V2);
}
我沒有想到這可以有所作爲,但它確實(實際上是問題的關鍵 - 見我自己的答案) 我只是發佈它希望它會幫助以後的人。
感謝所有爲所有的建議和您的時間
您是希望我們相信'SomeStruct *結構;'編譯?發佈真實的代碼。你使用C和C++嗎?選一個。 – cnicutar 2012-02-16 19:05:11
你可以發佈FillStruct的功能嗎? – vmpstr 2012-02-16 19:05:20
這不可能是你真正的代碼。你有'v2'而不是'V2',它不會編譯。 – 2012-02-16 19:05:36