Juste curieux, que se passe-t-il réellement si je définis un tableau de longueur nulle int array[0];
dans le code? GCC ne se plaint pas du tout.
Exemple de programme
#include <stdio.h>
int main() {
int arr[0];
return 0;
}
Clarification
J'essaie en fait de déterminer si les tableaux de longueur nulle initialisés de cette façon, au lieu d'être pointés comme la longueur variable dans les commentaires de Darhazer, sont optimisés ou non.
C'est parce que je dois publier du code dans la nature, donc j'essaie de déterminer si je dois gérer les cas où le SIZE
est défini comme 0
, ce qui se produit dans un code avec une définition statiqueint array[SIZE];
J'ai été en fait surpris que GCC ne se plaint pas, ce qui a conduit à ma question. D'après les réponses que j'ai reçues, je pense que l'absence d'avertissement est en grande partie due au support de l'ancien code qui n'a pas été mis à jour avec la nouvelle syntaxe [].
Parce que je m'interrogeais principalement sur l'erreur, je marque la réponse de Lundin comme correcte (Nawaz était le premier, mais ce n'était pas aussi complet) - les autres soulignaient son utilisation réelle pour les structures rembourrées par la queue, bien que pertinente, n'est pas t exactement ce que je cherchais.
[]
en Python ou même ""
en C? Parfois, vous avez une fonction ou une macro qui nécessite un tableau, mais vous n'avez aucune donnée à y mettre.