C++ C++;在调整大小的动态数组中填充新元素
在匆匆忙忙地完成作业的时候,我遇到了一个我想不出来的错误。我读过,也玩过,但我不知道我做错了什么 用户输入一个C++ C++;在调整大小的动态数组中填充新元素,c++,arrays,pointers,dynamic,resize,C++,Arrays,Pointers,Dynamic,Resize,在匆匆忙忙地完成作业的时候,我遇到了一个我想不出来的错误。我读过,也玩过,但我不知道我做错了什么 用户输入一个int指针数组,然后代码应该是数组大小的两倍,并用0填充新元素。问题是新元素不是0。我做错了什么?打印的这些数字是什么,地址是什么 输出: Enter array size: 3 Enter Element 0: 10 Enter Element 1: 11 Enter Element 2: 12 Entered Array: Element 0/3 is 10 Element 1/3
int
指针数组,然后代码应该是数组大小的两倍,并用0
填充新元素。问题是新元素不是0
。我做错了什么?打印的这些数字是什么,地址是什么
输出:
Enter array size: 3
Enter Element 0: 10
Enter Element 1: 11
Enter Element 2: 12
Entered Array:
Element 0/3 is 10
Element 1/3 is 11
Element 2/3 is 12
Resized Array:
Element 0/6 is 10
Element 1/6 is 11
Element 2/6 is 12
Element 3/6 is -33686019
Element 4/6 is 1196933248
Element 5/6 is 201354124
Press any key to continue . . .
代码:
#包括
#包括
使用名称空间std;
int*createArray(int大小)
{
int*newArray;
newArray=newint[size];
对于(int i=0;i cout问题是您正在从dblArraySize返回newArray,但从未使用它。您从未修改mainArray
dblArraySize(mainArray,size);
应该是:
mainArray = dblArraySize(mainArray,size);
另请注意:您忘记释放原始数组的内存。问题是您正在从dblArraySize返回新数组,但从未使用它。您从未修改mainArray
dblArraySize(mainArray,size);
应该是:
mainArray = dblArraySize(mainArray,size);
另请注意:您忘记释放原始数组的内存。您可以使用new int[size*2]()
进行值初始化(int变为0),跳过第二个循环所有元素。Ohhh,将新数组初始化为零,然后我只需要一个循环就可以将旧数组移动过来。很好,谢谢。您可以使用new int[size*2]()
对值进行初始化(int变为0)跳过第二个循环所有元素。哦,将新数组初始化为零,然后我只需要一个循环就可以移动旧数组。太好了,谢谢。