我的C++作业中有这个问题。使用指针数组的函数
编写和测试功能位置即发生,如以下所示,一个 表指针为整数P,这样的表n的大小和 整数值x。
int* location (int* p [ ], int n, int x);
位置搜索整数集在由指向指针 p的表的匹配来x的值。如果找到匹配的整数 ,则位置返回该整数的地址,否则返回NULL 。
我不确定我完全理解了这个问题。但是,我试图解决它,但我得到错误(程序崩溃)。这是我的代码。
#include<iostream>
using namespace std;
int* location (int* p [ ], int n, int x);
void main(){
int arr[3]={1,2,3};
int *ptr=arr;
int *address= location (&ptr, 3, 2);
cout<<&arr[3]<<" should be equal to "<<address<<endl;
}
int* location (int* p [ ], int n, int x){
for(int i=0; i<n; i++){
if(*p[i]==x){return p[i];}
}
return NULL;
}
有人可以告诉我我的错误,或告诉我,如果我正确解决问题?
感谢
我会说问题在于'return NULL;'。 –
如下面的答案所示,您正在将一个指针传递给函数的整数数组。你需要将一个指向数组的指针数组传递给函数。 –
编写'*(p [i])'或'(* p)[i]'来清除您的代码。 (根据描述,你想要第一个) –