-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'。 –