下面的一段代碼在編譯時爲函數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();
}
但是,這兩個節目都在做同樣的工作。編譯錯誤背後的原因是什麼?
第二個代碼段是否已完成?我沒有看到'fun2()'的定義。 – hmjd
第二個漏洞的前兩行fun()中的內存。 – WhozCraig