初始化unsigned int * Array时遇到问题

时间:2015-02-03 05:48:35

标签: c++ arrays pointers break unsigned-integer

标题中的

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但问题仍然存在

1 个答案:

答案 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;
}