我得到一个神秘的错误,我不知道为什么。此代码在失败之前运行多次,并且在同一点上始终失败。神秘的malloc:SYSMALLOC:断言失败错误
这里是我的代码:
assert(size > 0);
int* sorted = malloc(size * sizeof(int));
这里是当我运行它,我得到的错误:我试图打印出大小
malloc.c:2369: 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.
,并在这种情况下为1。这个代码在失败之前运行多次,大小不一,包括1。
没有人有任何知道我做错了吗?
谢谢。
什么是行2369?' – ouah
可能的重复[为什么我会得到一个C malloc断言失败?](http://stackoverflow.com/questions/2987207/why-do-i-get-ac-malloc-断言失败) –
@ouah我认为行是malloc函数本身的一部分,而不是海报的代码的一部分;他可能没有该图书馆的来源。 – mah