我有以下結構,類和功能片段:崩潰
結構:
struct myData
{
short index;
char name[32];
}
類:
class myFoo
{
...
public:
short count;
myData** data;
...
}
功能:
int Do_Bar(myFoo vFoo)
{
...
myData* data = *vFoo.data;
for (short i=0; i<vFoo.count; ++i)
{
Printf("%3d %s", data.index, data.name);
}
...
}
函數調用:
...
myFoo foo;
SomeAPI_GetCompleteObjectList(&foo);
Do_Bar(foo);
...
但我的代碼崩潰與這些代碼。但是,如果我刪除了參數和Do_Bar()
函數創建一個myFoo
類代替,代碼工作正常:
int Do_Bar(myFoo vFoo)
{
myFoo foo;
SomeAPI_GetCompleteObjectList(&foo);
...
myData* data = *vFoo.data;
for (short i=0; i<vFoo.count; ++i)
{
Printf("%3d %s", data.index, data.name);
}
...
}
爲什麼呢?以及如何解決這個問題?
EDIT1:
我忘了提的foo
的初始化是在函數調用之前完成。這是使用API初始化的。
我修改了這個代碼。
這甚至不應該編譯! 'data'是一個指針,你使用'.'來訪問成員而不是' - >'。 –