C中函数的冲突类型

时间:2017-02-16 06:02:58

标签: c function pointers

以下是错误消息:

  

replace2.c:41:警告:'替换'的冲突类型
  replace2.c:27:注意:先前隐含的'replace'声明是   这里

这是我的功能:

   void replace ( int *a1, int *a2, int n)
   {
    int *p;
    int *p2;
    int sum = 0;
    for (p = a1, p2 = a2; p < a1 + n; p++, p2++)
    {
    sum = (6 + *p) % 10;
    *p2 = sum;
    }

 }

这是我打电话的地方:

请注意在调用函数之前扫描int_lenght(输入由用户提供)。

         int int_lenght;
         array[int_lenght];
         arrayb[int_lenght];

         replace(array, arrayb, int_lenght);

2 个答案:

答案 0 :(得分:1)

问题可能是replace在使用之前未被声明。像这样,

 void replace(int*, int*, int);

答案 1 :(得分:0)

你的替换函数正在取2个指针值和一个整数值,但你发送的是两个数组而不是整数

int int_lenght;
array[int_lenght];
arrayb[int_lenght];

replace(array[int_lenght], arrayb[int_lenght], int_lenght);

希望它对你有所帮助。