2024年9月30日 星期一

C 程式語言:使用 malloc() 函數及多重指標建立三維陣列的範例


C 語言的多重指標結合 malloc() 函數的威力非常強大,只需簡短幾行程式碼即可建立動態的多維陣列。本範例為 int 資料型態大小 3*3*3 三維陣列,程式碼如下:

#include <stdio.h>
#include <stdlib.h>

int main (void) {

int ***ap;

ap = (int ***) malloc ( sizeof ( int ** ) * 3 );

for (int s = 0 ; s < 3 ; s++) {
*(ap+s) = (int **) malloc ( sizeof (int *) * 3 );
for (int m = 0 ; m < 3 ; m++)
*(*(ap+s)+m) = (int *) malloc ( sizeof (int) * 3 );
}

for (int s = 0 ; s < 3 ; s++) {
for (int m = 0 ; m < 3 ; m++)
for (int n = 0 ; n < 3 ; n++)
*(*(*(ap+s)+m)+n) = n + m * 10 + s * 100;
}

printf ("%d \n", *(*(*(ap+1)+1)+1)); //111
printf ("%d \n", *(*(*(ap+2)+2)+2)); //222

/* 釋放記憶體空間 */
for (int s = 0 ; s < 3 ; s++) 
for (int m = 0 ; m < 3 ; m++) 
free (*(*(ap+s)+m));

for (int s = 0 ; s < 3 ; s++) free(*(ap+s));
free (ap);

return 0;

}

沒有留言:

張貼留言

請注意 : 您的留言發佈成功 , 需經審核後 , 才能決定是否回覆 . 謝謝 !!