Mystérieux malloc: sysmalloc: Assertion failed erreur

Je suis un mystérieux d'erreur et je n'ai aucune idée pourquoi. Ce code s'exécute plusieurs fois avant d'échouer, et il échoue toujours au même point.

Voici mon code:

    assert(size > 0);
    int* sorted = malloc(size * sizeof(int));

Et voici l'erreur que je reçois quand je le lance:

    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.

J'ai essayé d'avoir l'impression de taille et c'est le 1er dans ce cas. Ce code s'exécute plusieurs fois avec différentes valeurs de la taille, y compris 1, avant d'échouer.

Quelqu'un a une idée de ce que je fais de mal?

Grâce.

Qu'est-ce que la ligne de 2369?`
double possible de Pourquoi dois-je avoir un C malloc échec d'assertion?
Je pense que cette ligne fait partie de la fonction malloc de la fonction elle-même, plutôt que de faire partie de l'affiche du code; il n'a sans doute pas la source de cette bibliothèque.
bon, je n'ai pas remarqué qu'il était malloc:2369, je pensais que c'était dans son code source.

OriginalL'auteur Ian | 2013-10-20