Я знаю, даже если я передаю массив, набрав arrayname в качестве аргумента (например: getArrayInput (arrayexample);), он скопирует только адресное значение первого элемента не полностью массив, все же мне интересно, почему этот код дает ошибку. Я знаю, что это не так, как это должно было быть реализовано, но я хочу понять эту ошибку.Передача указателя на массив int в качестве аргумента C++
main.cpp|13|error: cannot convert 'int*' to 'int**' for argument '1' to 'void getArrayInput(int**)'|
#include <iostream>
using namespace std;
void getArrayInput(int * []);
int main()
{
cout<<"Enter scores on by one.." << endl;
cout<<"To terminate input enter -1"<<endl;
int listof[10]={};
int *ptScores =listof;
getArrayInput(ptScores);
return 0;
}
void getArrayInput(int * []){
for(int i=0;i<10;i++){
cin>>*(pt+i);
if(*(pt+i))=-1){
break;
}
else{
cout<<"Enter next.."<<endl;
}
}
}
Добро пожаловать на C++, где вы получите 'std :: vector' без дополнительной оплаты. –
Bathsheba
Кстати, вы опасно близки к переполнению/вне границ записи. –