我正在编写一个程序,它应该查看一个指向整数的指针数组,然后让用户输入一个目标,然后程序应该将找到的目标替换为1,其他值替换为0。我正在尝试动态分配一个指针数组,但由于某些原因它不会让我。我也无法从函数中返回新数组(在它被修改之后),因此我可以在main中打印它。我的指针还不是很好,所以任何帮助都会受到赞赏。
谢谢!
include<iostream>
using namespace std;
int* flagArray (int *p[], int n, int x)
{
for(int i = 0;i<n;i++)
{
if(x == *p[i])
{
*p[i] = 1;
}
else
*p[i] = 0;
}
return *p; //Why wont this return the adresses of each of the 10 elements ? it only returns the adress of the first element.
}
void main()
{
int const size = 10;
int target;
int *arr[] = new int*[size];
cout<<"fill the array : "<<endl;
for(int i = 0;i<size;i++)
{
cin>>*arr[i];
}
cout<<"Enter the target : ";
cin>>target;
for(int j = 0;j<size;j++)
{
cout<<*(flagArray(arr,size,target))<<endl; // works for first element only , rest are 0s since theyre not checked
}
delete []*arr;
}