小编Dar*_*rko的帖子

在函数中声明new int []时,在main中使用delete []

我的第一份工作是:

"第一个函数readNumbers是从std :: cin读取一组10个数字,并使用它们初始化一个动态分配的长度为10的int数组(动态分配在堆上).该函数必须返回一个指向数组.您可以假设输入将是10个整数值而不是其他任何内容."

这很好,但我需要:

"这个问题的主要功能必须调用readNumbers函数,然后将新数组传递给printNumbers函数,最后删除数组."

但是,当在函数中声明新的int []时,我不确定如何处理main中的delete.这是我的代码的相关部分.

int *readNumbers(){
    int * numbers;
    numbers = new int [10];

    for (int i = 0; i < 10; i++){
        int userinput;
        cin >> userinput;
        *(numbers+i) = userinput;
    }
    return numbers;
}
Run Code Online (Sandbox Code Playgroud)

int main(){
    printNumbers(readNumbers(),10);

    delete[] numbers;

}
Run Code Online (Sandbox Code Playgroud)

很明显,main中的delete []请求是语法错误,我不确定解决方案.

c++ arrays

-3
推荐指数
1
解决办法
232
查看次数

标签 统计

arrays ×1

c++ ×1