int **arrayPtr;
arrayPtr = malloc(sizeof(int) * rows *cols + sizeof(int *) * rows);
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,我们尝试在单个malloc调用中分配2D数组.
malloc需要多个字节并为那么多字节分配内存,但在上面的例子中,如何malloc知道首先它必须分配一个指针数组,每个指针都指向一维数组?
malloc在这种特殊情况下,内部如何工作?