删除函数返回的指针?

时间:2017-03-25 03:52:48

标签: c++ pointers memory-management

我正在为学校编写一个编码分配,要求我们使用数组而不是向量(重点是学习指针和内存管理)。我遇到的问题是我无法删除从函数返回的指针 - 下面是我正在谈论的一个例子。

int* rndFunc(){
    int *rndValue = new *int[5];

    return rndValue;
}
int main(void){
    int *foo;
    foo = rndFunc();

    delete[] foo; //this is the issue, I get an invalid pointer error.

}

1 个答案:

答案 0 :(得分:1)

有两个错误:

int* rndFunc(){
    int *rndValue = new int[5]; // instead of int *rndValue = new *int[5];

    return rndValue; // Instead of return bar;
}