冲突类型在C

冲突类型在C

问题描述:

这里的函数是错误消息:冲突类型在C

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

这里是我的功能:

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); 
+1

什么是确切的错误信息?你打电话给你之前是否有范围函数的原型? –

+0

请注意,“长度”的正常拼写在h之前有t。 –

+0

对不起应该补充说:replace2.c:41:警告:'替换'的冲突类型 replace2.c:27:注意:'以前的'隐式声明'替换'在这里 –

问题可能是replace在使用前未被声明。与此类似,

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

几乎肯定,这不是问题。我之前使用过它们,没有声明它们,它的工作原理是,我的代码的第一部分应该是函数的声明。 “我想” –

+0

'我以前用过它们而没有声明它们,它确实有效,但是你是否已经将函数放在其调用语句的上面或下面? –

你替换功能正在2指针值和一个整数值,但您正在发送两个阵列,而不是整数的

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

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

希望它可以帮助你。