La blague du jour

19:33:27  sirion2> var = malloc(0) revient au même que free(var)

Je vends un tapis gonflable vibromasseur pour vous aider à vous rouler par terre.

4 Responses to “La blague du jour”


  • je n’ai pas compris.
  • Disons qu’une connaissance basique de la syntaxe (je ne parle donc pas des librairies) du C permet de voir que c’est impossible.
  • Je n’ai pas fait de C depuis longtemps, mais j’ai l’impression que malloc(0) a un comportement très dépendant de l’implémentation de la bibliothèque correspondante. Je ne suis pas certain que le comportement de malloc(), dans ce cas-là bien particulier, soit défini. Doit-il renvoyer un pointeur nul, ou bien un pointeur sur une zone mémoire allouée de taille nulle (ce qui, cela dit en passant, pourrait amener à une éventuelle consommation de la mémoire, selon l’implémentation de la bibliothèque).

    Cela étant, non, en aucun cas, en effet, malloc(0) ne permet de libérer la mémoire précédemment allouée. C’est syntaxiquement impossible, du fait du langage C lui-même, même si ce code était compilé en C , et ce, quelle que soit l’implémentation de la bibliothèque ou l’architecture utilisée.

Leave a Reply




Bear