Maison >développement back-end >C++ >C `new int[0]` peut-il allouer de la mémoire vide, et si oui, quelles sont les implications ?
Coin de curiosité : allouer de la mémoire vide en C
Dans le domaine de la programmation C, une question intrigante se pose : pouvons-nous allouer de la mémoire à un bloc vide, représenté par new int[0].
Observations d'un test Application
Une simple application de test qui imprime le résultat de new int[0] révèle une sortie de 0x876c0b8, suggérant que la mémoire est effectivement allouée.
Plonger dans le Norme
La norme C fournit des conseils à ce sujet matière :
Considérations supplémentaires
Foot-Note Insights
Un pied intéressant -la note de 3.7.3.1/2 révèle que l'intention est d'activer l'implémentation de l'opérateur new() en utilisant soit malloc() ou calloc(), qui se comportent de la même manière en ce qui concerne la taille nulle. demandes. Cependant, C diffère de C en exigeant une requête de taille nulle pour renvoyer un pointeur non nul.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!