考慮下面的代碼寫在C:免費指針從堆棧結構C
#include<stdio.h>
#include<stdlib.h>
typedef struct {
int var;
int **m;
} STRUCTURE;
int main() {
STRUCTURE a;
int i, j;
a.var = 5;
a.m = malloc(a.var * sizeof(int *));
for(i = 0; i < a.var; i++) {
a.m[i] = calloc(a.var, sizeof(int));
}
for(i = 0; i < a.var; i++) {
a.m[i][i] = 1;
}
for(i = 0; i < a.var; i++) {
for(j = 0; j < a.var; j++) {
printf("%d ", a.m[i][j]);
}
printf("\n");
}
return 0;
}
這會簡單輸出:
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
鑑於該結構在主宣佈,但指針的事實它是動態分配的,它們應該如何釋放?如果他們應該。
謝謝!
他們應該使用'free' ...提示:它與'malloc'如何使用它們相似。 – Kninnug