c-出现malloc()错误的2D数组



我试图根据命令行参数在c中动态分配一个数组,但遇到了一个异常错误。我做错了什么?

int **array =(int**)malloc(Argument1);
for(a=0;a<Argument2;a++)
    array[a]=(int*)malloc(Argument2);

并且exeption在之后抛出

__forceinline void * __cdecl _heap_alloc (size_t size)
{ 
 //stuff here
 return HeapAlloc(_crtheap, 0, size ? size : 1); }

我通过了一次for循环,然后在尝试读取数据时出现访问错误,但每隔一次它就会触发一个断点。我在Visual Studio中可能做错了什么?

malloc函数的参数是字节大小,而不是元素数量,因为malloc无法知道每个元素的大小。此外,循环应该循环通过Argument1,而不是Argument2。

试试这个:

int **array = malloc(arg1 * sizeof(int*));
for (int I = 0; I < arg1; I++) {
    array[I] = malloc(arg2 * sizeof(int));
}

相关内容

  • 没有找到相关文章

最新更新