全新指针,所以我为新手问题道歉。我试图调用我的函数时收到转换错误。 该函数应该返回一个指向更新数组的指针,该数组最后包含1。
int* appendList(int x, int &arraySize, int *list)
{
arraySize++;
int *array2 = new int[arraySize];
for(int i=0; i < arraySize-1; i++)
{
array2[i] = list[i-1];
}
array2[arraySize]=x;
return array2;
}
我的主要功能如下。
int main()
{
int size=0;
int *list;
cout << "Please enter the size of your array: ";
cin >> size;
list = new int[size];
cout << "\nPlease enter the numbers in your list seperated by spaces: ";
for(int i=0; i < size; i++)
{
cin >> list[i];
}
cout << endl;
cout << "The array you entered is listed below\n ";
for(int i=0; i < size; i++)
{
cout << setw(3) << list[i];
}
list = appendList(1, size, list);
for(int i=0; i < size; i++)
{
cout << setw(3) << list[i];
}
return 0;
}
对函数appendList的调用导致参数3的转换错误,但我不确定为什么?功能参数必须保持原样。
感谢您的帮助。
答案 0 :(得分:2)
我在您的代码中发现的错误。
int* appendList(int x,int &arraySize,int *list)
{
arraySize++;
int *array2=new int[arraySize];
for(int i=0;i<arraySize-1;i++)
{
array2[i]=list[i-1];//this is incorrect because for i=0 it becomes list[-1] which is wrong
}
array2[arraySize]=x;
return array2;
}