这是我正在使用的数组库中的代码片段。这在Windows上运行良好,但是如果我在Linux上使用gcc进行编译(如果该函数崩溃),则可以正常运行。当试图缩小问题范围时,我向其添加了一条printf语句,并且代码停止崩溃。
void _arrayCreateSize( void ***array, int capacity )
{
(*array) = malloc( (capacity * sizeof(int)) + sizeof(ArrayHeader) );
((ArrayHeader*)(*array))->size = 0;
((ArrayHeader*)(*array))->capacity = capacity;
// printf("Test!\n");
*(char**)array += sizeof(ArrayHeader);
}
Run Code Online (Sandbox Code Playgroud)
取出printf后,它再次开始崩溃。我完全不知道为什么会这样。