malloc 3d内存分配大小

时间:2014-12-19 18:47:33

标签: c malloc fopen

我对malloc完全不熟悉,我必须为project.i读取。在malloc的描述中读取你必须为空结束字节指定+1大小。但我不明白在哪里? ? 下面是我的代码块....

array = malloc(row*sizeof(int**));
for(i=0;i<row;i++)
{
 array[i] = malloc(column*sizeof(int*));
 if(array[i]==NULL)
   {
    printf("out of space");
    return 1;
   }
 for(j=0;j<column;j++)
  {
   array[i][j] = malloc(3*sizeof(int));
   if(array[i][j]==NULL)
   {
    printf("out of space");
    return 1;
   }
  }

然后我想要访问使用 数组[1] [1] [1] ......等等......

如果我用到列来分配一些值..然后在下一个如果有两个fopen语句我得到以下错误... 我需要fopen语句来读取两个文件......

testImage: malloc.c:3096: sYSMALLOc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) - 1)) & ~((2 * (sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long)old_end & pagemask) == 0)' failed.
Aborted

但是,如果我将值分配给第1列,那么错误就不存在.....

请在这帮帮我.....

编辑细节: 这个错误我只能进入ubuntu如果我在unix中运行它我没有得到这个错误.... 对不起,我会在9个小时内上传完整的代码...(我现在没有和我在一起...抱歉)...

是的,我知道3D阵列的仿真效果不佳,但我只需要它...... 让我为你定义一些步骤...... 首先,我用上面的代码定义数组。 然后我为数组的每个元素赋值...所以我可以稍后操作它...这里如果我使用for循环为每个元素赋值,如果我包含元素 array [row] [column] [1] = 23; 然后,如果我使用fopen打开两个文件然后生成上面的错误..但如果我只使用fopen打开一个文件,那么没有问题....

0 个答案:

没有答案