-1
我想使結構的矩陣,但下面的代碼給我賽格故障,我無法找出它的wrong.It給賽格故障free_zone功能之後:矩陣的元素structers
struct zone{
char tc[20],or[20];
char dir;
int nrc;
};
void init(struct zone ***a,int n,int m){
int i;
a=(struct zone **)malloc(n*sizeof(struct zone *));
for(i=0;i<n;i++){
(*a)[i]=(struct zone *)malloc(m*sizeof(struct zone));
}
return a;
}
void free_zone(struct zone ***a,int n,int m){
int i;
for(i=0;i<n;i++){
free(*(a)[i]);
}
free(a);
}
int main()
{
struct zone **a;
int n,m;
scanf("%d%d",&n,&m);
init(a,n,m);
free_zone(a,n,m);
return 0;
}
您可以在啓用所有警告的情況下編譯並首先修復所有這些警告嗎? – Rufflewind
^重複覆蓋'init()'函數並調用它;修復'free_zone'函數通過'struct zone ** a'。當存在不同的間接級別時,通過使用不同的變量名可以使您的代碼更易於理解。調用參數init'pa'。 –