Gizemli bir hata alıyorum ve nedenini bilmiyorum. Bu kod başarısız olmadan önce birkaç kez çalışır ve her zaman aynı noktada başarısız olur.Gizemli malloc: sysmalloc: Onaylanmadı hata
İşte benim kodudur:
assert(size > 0);
int* sorted = malloc(size * sizeof(int));
Ve burada ben bunu çalıştırdığınızda alıyorum hatadır:
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.
Ben boyutunu baskı denedim ve bu durumda 1'dir. Bu kod, başarısızlıktan önce 1 dahil olmak üzere çeşitli boyutlardaki değişkenlerle birkaç kez çalışır.
Neyi yanlış yaptığım hakkında bir fikri olan var mı?
Teşekkürler.
Satır 2369 nedir? ' – ouah
Mümkün yinelenen [Neden bir C malloc onaylama hatası aldım?] (Http://stackoverflow.com/questions/2987207/why-do-i-get-ac-malloc- savunu-başarısızlık) –
@ouah Bence bu hat, posterin kodunun bir parçası yerine, malloc işlevinin bir parçasıdır; Muhtemelen o kütüphaneye kaynağa sahip değildir. – mah