五维数组

lovejoyboy 2004-01-06 03:42:33
#include <stdio.h>
#include <stdlib.h>

enum dim {A=2, B, C, D, E};
typedef int T;

T ***** Alloc5D(size_t m, size_t n, size_t p, size_t q, size_t r);
void Free5D(T *****array, size_t m, size_t n, size_t p, size_t q);

int main(void)
{
T *****array;
int a, b, c, d, e;

if((array = Alloc5D(A, B, C, D, E)) == NULL) {
printf("Allocate fali!\n");
return 0;
}

for(a = 0; a < A; a++)
for(b = 0; b < B; b++)
for(c = 0; c < C; c++)
for(d = 0; d < D; d++) {
for(e = 0; e < E; e++) {
array[a][b][c][d][e] = a+b+c+d+e;
printf("[%d,%d,%d,%d,%d]=%d ", a, b, c, d, e,
array[a][b][c][d][e]);
}
printf("\n");
}

Free5D(array, A, B, C, D);
return 0;
}

T ***** Alloc5D(size_t m, size_t n, size_t p, size_t q, size_t r)
{
T *****array = NULL;
size_t a, b, c, d;

if((array = malloc(m * sizeof *array)) == NULL) return NULL;
for(a = 0; a < m; a++) {
if((array[a] = malloc(n * sizeof *array[0])) == NULL) return NULL;
for(b = 0; b < n; b++) {
if((array[a][b] = malloc(p * sizeof *array[0][0])) == NULL) return NULL;
for(c = 0; c < p; c++) {
if((array[a][b][c] = malloc(q * sizeof *array[0][0][0])) == NULL)
return NULL;
for(d = 0; d < q; d++)
if((array[a][b][c][d] = malloc(r * sizeof *array[0][0][0][0])) == NULL)
return NULL;
}
}
}

return array;
}

void Free5D(T *****array, size_t m, size_t n, size_t p, size_t q)
{
size_t a, b, c, d;

if(array) {
for(a = 0; a < m; a++) {
for(b = 0; b < n; b++) {
for(c = 0; c < p; c++) {
for(d = 0; d < q; d++) {
if(array[a][b][c][d]) free(array[a][b][c][d]);
}
if(array[a][b][c]) free(array[a][b][c]);
}
if(array[a][b]) free(array[a][b]);
}
if(array[a]) free(array[a]);
}
free(array);
}
}

恐怖吧。
...全文
238 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovejoyboy 2004-01-06
  • 打赏
  • 举报
回复
输出:
[0,0,0,0,0]=0 [0,0,0,0,1]=1 [0,0,0,0,2]=2 [0,0,0,0,3]=3 [0,0,0,0,4]=4 [0,0,0,0,5]=5
[0,0,0,1,0]=1 [0,0,0,1,1]=2 [0,0,0,1,2]=3 [0,0,0,1,3]=4 [0,0,0,1,4]=5 [0,0,0,1,5]=6
[0,0,0,2,0]=2 [0,0,0,2,1]=3 [0,0,0,2,2]=4 [0,0,0,2,3]=5 [0,0,0,2,4]=6 [0,0,0,2,5]=7
[0,0,0,3,0]=3 [0,0,0,3,1]=4 [0,0,0,3,2]=5 [0,0,0,3,3]=6 [0,0,0,3,4]=7 [0,0,0,3,5]=8
[0,0,0,4,0]=4 [0,0,0,4,1]=5 [0,0,0,4,2]=6 [0,0,0,4,3]=7 [0,0,0,4,4]=8 [0,0,0,4,5]=9
[0,0,1,0,0]=1 [0,0,1,0,1]=2 [0,0,1,0,2]=3 [0,0,1,0,3]=4 [0,0,1,0,4]=5 [0,0,1,0,5]=6
[0,0,1,1,0]=2 [0,0,1,1,1]=3 [0,0,1,1,2]=4 [0,0,1,1,3]=5 [0,0,1,1,4]=6 [0,0,1,1,5]=7
[0,0,1,2,0]=3 [0,0,1,2,1]=4 [0,0,1,2,2]=5 [0,0,1,2,3]=6 [0,0,1,2,4]=7 [0,0,1,2,5]=8
[0,0,1,3,0]=4 [0,0,1,3,1]=5 [0,0,1,3,2]=6 [0,0,1,3,3]=7 [0,0,1,3,4]=8 [0,0,1,3,5]=9
[0,0,1,4,0]=5 [0,0,1,4,1]=6 [0,0,1,4,2]=7 [0,0,1,4,3]=8 [0,0,1,4,4]=9 [0,0,1,4,5]=10
[0,0,2,0,0]=2 [0,0,2,0,1]=3 [0,0,2,0,2]=4 [0,0,2,0,3]=5 [0,0,2,0,4]=6 [0,0,2,0,5]=7
[0,0,2,1,0]=3 [0,0,2,1,1]=4 [0,0,2,1,2]=5 [0,0,2,1,3]=6 [0,0,2,1,4]=7 [0,0,2,1,5]=8
[0,0,2,2,0]=4 [0,0,2,2,1]=5 [0,0,2,2,2]=6 [0,0,2,2,3]=7 [0,0,2,2,4]=8 [0,0,2,2,5]=9
[0,0,2,3,0]=5 [0,0,2,3,1]=6 [0,0,2,3,2]=7 [0,0,2,3,3]=8 [0,0,2,3,4]=9 [0,0,2,3,5]=10
[0,0,2,4,0]=6 [0,0,2,4,1]=7 [0,0,2,4,2]=8 [0,0,2,4,3]=9 [0,0,2,4,4]=10 [0,0,2,4,5]=11
[0,0,3,0,0]=3 [0,0,3,0,1]=4 [0,0,3,0,2]=5 [0,0,3,0,3]=6 [0,0,3,0,4]=7 [0,0,3,0,5]=8
[0,0,3,1,0]=4 [0,0,3,1,1]=5 [0,0,3,1,2]=6 [0,0,3,1,3]=7 [0,0,3,1,4]=8 [0,0,3,1,5]=9
[0,0,3,2,0]=5 [0,0,3,2,1]=6 [0,0,3,2,2]=7 [0,0,3,2,3]=8 [0,0,3,2,4]=9 [0,0,3,2,5]=10
[0,0,3,3,0]=6 [0,0,3,3,1]=7 [0,0,3,3,2]=8 [0,0,3,3,3]=9 [0,0,3,3,4]=10 [0,0,3,3,5]=11
[0,0,3,4,0]=7 [0,0,3,4,1]=8 [0,0,3,4,2]=9 [0,0,3,4,3]=10 [0,0,3,4,4]=11 [0,0,3,4,5]=12
[0,1,0,0,0]=1 [0,1,0,0,1]=2 [0,1,0,0,2]=3 [0,1,0,0,3]=4 [0,1,0,0,4]=5 [0,1,0,0,5]=6
[0,1,0,1,0]=2 [0,1,0,1,1]=3 [0,1,0,1,2]=4 [0,1,0,1,3]=5 [0,1,0,1,4]=6 [0,1,0,1,5]=7
[0,1,0,2,0]=3 [0,1,0,2,1]=4 [0,1,0,2,2]=5 [0,1,0,2,3]=6 [0,1,0,2,4]=7 [0,1,0,2,5]=8
[0,1,0,3,0]=4 [0,1,0,3,1]=5 [0,1,0,3,2]=6 [0,1,0,3,3]=7 [0,1,0,3,4]=8 [0,1,0,3,5]=9
[0,1,0,4,0]=5 [0,1,0,4,1]=6 [0,1,0,4,2]=7 [0,1,0,4,3]=8 [0,1,0,4,4]=9 [0,1,0,4,5]=10
[0,1,1,0,0]=2 [0,1,1,0,1]=3 [0,1,1,0,2]=4 [0,1,1,0,3]=5 [0,1,1,0,4]=6 [0,1,1,0,5]=7
[0,1,1,1,0]=3 [0,1,1,1,1]=4 [0,1,1,1,2]=5 [0,1,1,1,3]=6 [0,1,1,1,4]=7 [0,1,1,1,5]=8
[0,1,1,2,0]=4 [0,1,1,2,1]=5 [0,1,1,2,2]=6 [0,1,1,2,3]=7 [0,1,1,2,4]=8 [0,1,1,2,5]=9
[0,1,1,3,0]=5 [0,1,1,3,1]=6 [0,1,1,3,2]=7 [0,1,1,3,3]=8 [0,1,1,3,4]=9 [0,1,1,3,5]=10
[0,1,1,4,0]=6 [0,1,1,4,1]=7 [0,1,1,4,2]=8 [0,1,1,4,3]=9 [0,1,1,4,4]=10 [0,1,1,4,5]=11
[0,1,2,0,0]=3 [0,1,2,0,1]=4 [0,1,2,0,2]=5 [0,1,2,0,3]=6 [0,1,2,0,4]=7 [0,1,2,0,5]=8
[0,1,2,1,0]=4 [0,1,2,1,1]=5 [0,1,2,1,2]=6 [0,1,2,1,3]=7 [0,1,2,1,4]=8 [0,1,2,1,5]=9
[0,1,2,2,0]=5 [0,1,2,2,1]=6 [0,1,2,2,2]=7 [0,1,2,2,3]=8 [0,1,2,2,4]=9 [0,1,2,2,5]=10
[0,1,2,3,0]=6 [0,1,2,3,1]=7 [0,1,2,3,2]=8 [0,1,2,3,3]=9 [0,1,2,3,4]=10 [0,1,2,3,5]=11
[0,1,2,4,0]=7 [0,1,2,4,1]=8 [0,1,2,4,2]=9 [0,1,2,4,3]=10 [0,1,2,4,4]=11 [0,1,2,4,5]=12
[0,1,3,0,0]=4 [0,1,3,0,1]=5 [0,1,3,0,2]=6 [0,1,3,0,3]=7 [0,1,3,0,4]=8 [0,1,3,0,5]=9
[0,1,3,1,0]=5 [0,1,3,1,1]=6 [0,1,3,1,2]=7 [0,1,3,1,3]=8 [0,1,3,1,4]=9 [0,1,3,1,5]=10
[0,1,3,2,0]=6 [0,1,3,2,1]=7 [0,1,3,2,2]=8 [0,1,3,2,3]=9 [0,1,3,2,4]=10 [0,1,3,2,5]=11
[0,1,3,3,0]=7 [0,1,3,3,1]=8 [0,1,3,3,2]=9 [0,1,3,3,3]=10 [0,1,3,3,4]=11 [0,1,3,3,5]=12
[0,1,3,4,0]=8 [0,1,3,4,1]=9 [0,1,3,4,2]=10 [0,1,3,4,3]=11 [0,1,3,4,4]=12 [0,1,3,4,5]=13
[0,2,0,0,0]=2 [0,2,0,0,1]=3 [0,2,0,0,2]=4 [0,2,0,0,3]=5 [0,2,0,0,4]=6 [0,2,0,0,5]=7
[0,2,0,1,0]=3 [0,2,0,1,1]=4 [0,2,0,1,2]=5 [0,2,0,1,3]=6 [0,2,0,1,4]=7 [0,2,0,1,5]=8
[0,2,0,2,0]=4 [0,2,0,2,1]=5 [0,2,0,2,2]=6 [0,2,0,2,3]=7 [0,2,0,2,4]=8 [0,2,0,2,5]=9
[0,2,0,3,0]=5 [0,2,0,3,1]=6 [0,2,0,3,2]=7 [0,2,0,3,3]=8 [0,2,0,3,4]=9 [0,2,0,3,5]=10
[0,2,0,4,0]=6 [0,2,0,4,1]=7 [0,2,0,4,2]=8 [0,2,0,4,3]=9 [0,2,0,4,4]=10 [0,2,0,4,5]=11
[0,2,1,0,0]=3 [0,2,1,0,1]=4 [0,2,1,0,2]=5 [0,2,1,0,3]=6 [0,2,1,0,4]=7 [0,2,1,0,5]=8
[0,2,1,1,0]=4 [0,2,1,1,1]=5 [0,2,1,1,2]=6 [0,2,1,1,3]=7 [0,2,1,1,4]=8 [0,2,1,1,5]=9
[0,2,1,2,0]=5 [0,2,1,2,1]=6 [0,2,1,2,2]=7 [0,2,1,2,3]=8 [0,2,1,2,4]=9 [0,2,1,2,5]=10
[0,2,1,3,0]=6 [0,2,1,3,1]=7 [0,2,1,3,2]=8 [0,2,1,3,3]=9 [0,2,1,3,4]=10 [0,2,1,3,5]=11
[0,2,1,4,0]=7 [0,2,1,4,1]=8 [0,2,1,4,2]=9 [0,2,1,4,3]=10 [0,2,1,4,4]=11 [0,2,1,4,5]=12
[0,2,2,0,0]=4 [0,2,2,0,1]=5 [0,2,2,0,2]=6 [0,2,2,0,3]=7 [0,2,2,0,4]=8 [0,2,2,0,5]=9

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧