小编Mar*_*ark的帖子

为什么我在C中的多维动态分配不起作用?

我一直试图找出我在C中分配和使用多维动态分配数组的问题.我真的很感激任何帮助.

我尝试了两种方法.首先:

cdr = (double ***) malloc(NUM_REGIONS * sizeof(double **));
for(i=0; i<NUM_REGIONS; i++){
   cdr[i] = (double **) malloc(numRatings * sizeof(double *));
   for(j=0; j<numRatings; j++){
       cdr[i][j] = (double *) malloc(remQuarters * sizeof(double));
   }
}  
Run Code Online (Sandbox Code Playgroud)

第二个:

tempPtr1 = (double *) malloc(NUM_REGIONS * numRatings * remQuarters * sizeof(double) );
tempPtr2 = (double **) malloc (NUM_REGIONS * numRatings * sizeof(double *));
cdr = (double ***) malloc(NUM_REGIONS * sizeof(double **));
for(i=0; i< NUM_REGIONS; i++){
    cdr[i] = tempPtr2 + i;
    for(j=0; j < numRatings; j++) cdr[i][j] …
Run Code Online (Sandbox Code Playgroud)

c arrays pointers indirection

2
推荐指数
1
解决办法
618
查看次数

标签 统计

arrays ×1

c ×1

indirection ×1

pointers ×1