Bonsoir,
Dans le programme ci-dessous, je cherche à savoir ce que donnent les 2 cas d'exécution:
Code :
- #include <stdio.h>
- int main(int argc, char *argv[])
- {
- char *s1 = "OULA";
- char s2[4] = "OULA";
- if (atoi(argv[1])==1) {
- s1[0]='a';
- }
- else {
- printf("%s\n", s2);
- }
- return 0;
- }
|
Dans le premier cas, c'est-à-dire lorsqu'on rentre dans le if, je pense que le 0 de OULA dans la chaîne s1 devient un a, donc si on affichait s1 on aurait aULA.
Dans le second cas, c'est-à-dire lorsque le if n'est pas vérifié, on affiche seulement OUL étant donné qu'il fallait penser que la chaîne se termine par \0!
Est-ce correct?
Merci d'avance!
Message édité par dj_titeuf le 11-11-2009 à 19:01:03