class foo
{
unsigned int *Indices;
unsigned int *func(int var);
};
in CPP
unsigned int *foo::func(int var)
{
Indices = new unsigned int[((unsigned)var *3)];
//do math.
return Indices;
}
初始化指数数组我在malloc.c
内休息
这里发生了什么?为什么我要休息一下?
我感觉这是因为在编译时不知道int var
。它是否正确?
我也试过使用魔术数而不是var但问题仍然存在
答案 0 :(得分:0)
也许,你是对的,
这是因为int var
但问题不是价值而是类型。尝试在分配内存之前检查var。 E.g:
unsigned int *foo::func(int var)
{
if (var <= 0)
{
return NULL;
}
Indices = new unsigned int[var *3];
//do math.
return Indices;
}