Voici les deux façons d'initialiser un tableau de caractères:Initialisation d'un tableau de caractères dans C. Quelle est la meilleure solution?
char charArray1[] = "foo";
char charArray2[] = {'f','o','o','\0'};
Si les deux sont équivalents, on pourrait penser tout le monde à utiliser la première option ci-dessus (car il nécessite moins de coups clés). Mais j'ai vu le code où l'auteur prend la peine de toujours utiliser la deuxième méthode. Je suppose que dans le premier cas, la chaîne "foo" est stockée dans le segment de données et copiée dans le tableau à l'exécution, alors que dans le second cas les caractères sont stockés dans le segment de code et copiés dans le tableau à runtime. Et pour une raison quelconque, l'auteur est allergique à avoir quelque chose dans le segment de données.
Éditer: Supposons que les tableaux sont déclarés locaux à une fonction.
Questions: Mon raisonnement est-il correct? Quel est votre style préféré et pourquoi?
le premier style - certainement. plus clair et plus concis. les impacts de perf entre 1 et 2 seraient négligeables par rapport aux avantages de lisibilité. – obelix
Connexes: http://stackoverflow.com/questions/3427750/difference-between-array-initializations et http://stackoverflow.com/questions/3429071/string-initializer-and-read-only-section –
@Prasoon Merci pour les liens. J'ai googlé et cherché SO avant de poster mais je ne l'ai pas trouvé. –