Sto ricevendo un errore misterioso e non ho idea del perché. Questo codice viene eseguito più volte prima di fallire e fallisce sempre nello stesso punto.Malloc misterioso: sysmalloc: errore di asserzione non riuscito
Ecco il mio codice:
assert(size > 0);
int* sorted = malloc(size * sizeof(int));
E qui è l'errore che sto ottenendo quando l'eseguo:
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.
ho cercato di stampare dimensioni ed è 1 in questo caso. Questo codice viene eseguito più volte con diversi valori di dimensioni, incluso 1, prima di fallire.
Qualcuno ha idea di cosa sto facendo male?
Grazie.
Che cos'è la riga 2369? ' – ouah
possibile duplicato di [Perché viene visualizzato un errore di asserzione di malloc C?] (Http://stackoverflow.com/questions/2987207/why-do-i-get-ac-malloc- asserzione-fallimento) –
@ouah Penso che quella linea sia parte della stessa funzione malloc, piuttosto che parte del codice del poster; probabilmente non ha la fonte per quella libreria. – mah