#include<stdio.h>
int show( int *m);
int disp(int *n);
int main()
{
int i;
int marks[]={55,65,70,75,78};
for(i=0;i<4;i++)
{
disp(&marks[i]);
return 0;
}
}
int disp(int *n)
{
show(&n);
return 0;
}
int show(int *m)
{
printf("%d\n", *m);
return 0;
}
显示:
error[Error] cannot convert 'int**' to 'int*' for argument '1' to 'int show(int*)'
答案 0 :(得分:2)
您正在将指针(int*
)传递给disp()
。在disp()
内,您将指向该指针(int**
)的指针传递给show()
。
只需传递指针而不是地址:
int disp(int *n){
show(n);
return 0;
}
答案 1 :(得分:1)
你必须在Show()函数中捕获双指针,
disp(&amp; marks [i])发送它的地址,它现在用指针捕获你试图发送数据的地址,所以你必须像这样用双指针捕获
#include<stdio.h>
int show( int **m);
int disp(int *n);
int main()
{
int i;
int marks[]={55,65,70,75,78};
for(i=0;i<4;i++)
{
disp(&marks[i]);
return 0;
}
}
int disp(int *n)
{
show(&n);
return 0;
}
int show(int **m)
{
printf("%d\n", **m);
return 0;
}