[心得] malloc多維陣列
看到"陣列指標與陣列"系列文章 突然有個想法
如果要用純C malloc多維陣列 且維度和大小是固定的
應該可以用比一般用迴圈malloc更簡單的方式存取多維陣列
以下是三維陣列程式碼 不知這樣是正確的嗎
#include <stdio.h>
#include <stdlib.h>
#define SIZEZ (10u)
#define SIZEY (10u)
#define SIZEX (10u)
main()
{
int i=0;
int *arr=0;
int (*p_arr)[SIZEY][SIZEZ]=0; //存取陣列用
arr=(int *)malloc(SIZEX*SIZEY*SIZEZ*sizeof(int));
p_arr=(int (*)[SIZEY][SIZEZ])arr;
for(i=0;i<SIZEX*SIZEY*SIZEZ; i++)
{
arr[i]=i; //填入0~999
}
printf("%d\n",p_arr[1][2][3]); //輸出123
free(arr);
return 0;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.94.60
※ 編輯: shyann 來自: 140.114.94.60 (04/07 16:52)
→
04/07 17:31, , 1F
04/07 17:31, 1F
推
04/07 17:36, , 2F
04/07 17:36, 2F
→
04/07 17:36, , 3F
04/07 17:36, 3F
→
04/07 18:49, , 4F
04/07 18:49, 4F
推
04/08 15:28, , 5F
04/08 15:28, 5F
→
04/08 15:47, , 6F
04/08 15:47, 6F
→
04/08 15:48, , 7F
04/08 15:48, 7F
→
04/08 16:50, , 8F
04/08 16:50, 8F
推
04/09 08:01, , 9F
04/09 08:01, 9F