【发布时间】:2012-11-06 17:45:04
【问题描述】:
以下代码在编译时给出了函数 fun2() 冲突类型的错误。
#include<stdio.h>
#include<stdlib.h>
char *** fun(){
char *** b;
calloc(10,sizeof(char **));
b[0]=fun2();
return b;
}
char ** fun2(){
char **a;
a=calloc(10,sizeof(char*));
a[0]=calloc(10,sizeof(char));
return a;
}
main(){
char **c;
c=fun();
}
但是,这段代码没有-
#include<stdio.h>
#include<stdlib.h>
char *** fun(){
char *** b;
calloc(10,sizeof(char **));
b=fun2();
char **a;
a=calloc(10,sizeof(char*));
a[0]=calloc(10,sizeof(char));
return a;
}
main(){
char **c;
c=fun();
}
但是,两个程序都在执行相同的任务。编译错误的原因是什么?
【问题讨论】:
-
第二个sn-p完成了吗?我没有看到
fun2()的定义。 -
第二个在fun()的前两行泄漏内存。