內的malloc我有這樣的層次結構:C指針功能調用
main()
{
int i;
myStruct *devices = NULL;
myFunc1(&devices);
for (i = 0; i < 5; i++)
{
printf("MAC: %s, Name: %s, COD: %s\n\r", devices[i].field1, devices[i].field2, devices[i].field3);
}
}
void myFunc1(myStruct **devices)
{
myFunc2(devices);
}
void myFunc2(myStruct **devices)
{
int i;
*devices = malloc(sizeof(myStruct) * 5);
for (i = 0; i < 5; i++)
{
(*devices[i]).field1 = "test1";
(*devices[i]).field2 = "test2";
(*devices[i]).field3 = "test3";
}
}
在主當我訪問設備[I],其中i = 0,它是確定,但是,當I> 0段錯誤發生,我可以不明白如何正確訪問它。
編譯所有警告和調試信息('GCC -Wall -Wextra -g')。 **如果可用,請使用調試器**('gdb')和[valgrind](http://valgrind.org/)。 – 2015-04-02 11:18:22
@Dabo:不,這是一個編譯錯誤。顯然代碼不完整。 – 2015-04-02 11:22:44