我有以下结构、类和函数片段:
结构体:
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);
...
但是我的代码因这些代码而崩溃。但是,如果我删除了参数并myFoo
在函数中创建了一个类Do_Bar()
,则代码可以正常工作:
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);
}
...
}
为什么?以及如何解决这个问题?
编辑1:
我忘了提到初始化foo
是在函数调用之前完成的。这是使用 API 初始化的。
我为此修改了代码。