我的第一份工作是:
"第一个函数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;
}
和
int main(){
printNumbers(readNumbers(),10);
delete[] numbers;
}
很明显,main中的delete []请求是语法错误,我不确定解决方案。
答案 0 :(得分:5)
您需要将readNumbers()
的结果分配给变量,然后才能将其删除。
int main() {
int *numbers = readNumbers();
printNumbers(numbers, 10);
delete[] numbers;
return 0;
}