0

我想根据以下创建 2D 数组的代码动态分配 3D 数组,任何建议都会非常有帮助:

void** malloc_2d (size_t nrows, size_t ncols, int elementsize) {
size_t i;
void ** ptr;

if ( (ptr = (void**)malloc(nrows * sizeof(void *))) == NULL ) {

  fprintf(stderr, "malloc_2d: out of memory\n");

  exit(1);

}


 if ( (ptr[0] = malloc(nrows * ncols * elementsize)) == NULL ) {

  fprintf(stderr, "malloc_2d: out of memory\n");

  exit(1);

 }

for (i=1; i<nrows; i++) 

  ptr[i] = (char*)ptr[0] + i * ncols * elementsize;

 return ptr;
 }

谢谢

4

0 回答 0