我使用函数调整了数组的大小,但是似乎它不存储我输入的任何数组值。
基本上,我将-1放到该位置,循环停止,然后显示数组中的元素。却什么也没显示。
cout之后,输出不显示任何内容。
#include <iostream>
using namespace std;
void resize(int *&arr, int &size){
int tempsize=size;
size=size+10;
int *temp= new int [size];
for(int i=0; i<tempsize;i++){
temp[i]=arr[i];
}
delete [] arr;
arr=temp;
}
int main()
{
int size=0;
int capacity =10;
int *p=new int[capacity];
int check=0;
int input;
cout<<"Please enter the number in array and input -1 to end it.";
while(check!=-1)
{
cin>>input;
if(input==-1)
{check=-1;}
else{
if(size==capacity){
resize(p,capacity);
p[size]=input;
size++;
}
}
}
cout<<"Show me the numbers in array: ";
for(int i=0; i<size;i++){
cout<<p[i]<<" ";
}
cout<<endl;
delete [] p;
return 0;
}
答案 0 :(得分:0)
您的if语句是否需要调整数组大小太过复杂。 {}应该只包含调整大小,然后在{}之外应该存储到数组中。
相反,大小为0,即!=容量,因此您什么也不做。