c - 错误无法将参数 'int**' 转换为 'int*' 到 '1'

标签 c

#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*)'

最佳答案

您正在将指针 (int*) 传递给 disp()。在 disp() 内部,您将指向该指针 (int**) 的指针传递给 show()

只传递指针而不是它的地址:

int disp(int *n){
    show(n);
    return 0;
}

关于c - 错误无法将参数 'int**' 转换为 'int*' 到 '1',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38520252/

相关文章:

c++ - 如何从 uint32_t 打印十六进制?

c - 保护内存中的凭据

c - 双指针上的 malloc()

c - 在聚类分析中加载对象)

c++ - 输入滞后测试仪

c - 从 C 中的线程数组返回?

c - 从目标文件中提取一个部分以分隔 .o

c - 这段代码有什么问题?试图显示复制的字符数组行

python - 有没有免费的 Python 到 C 的翻译器?

c - -250 打印为 6