voilà j'ai compilé ce programme:
#include <stdio.h> #include <conio.h> void main(void) { int i; char *str0 = "Hello"; char str1[]="Hello"; printf ("str0=%s str1=%s\n",str0,str1); printf ("\n&str0=%d str0=%d Hello=%d str0->=%c\n",&str0,str0,"Hello",*str0); printf ("\n&str1=%d str1=%d Hello=%d str1->=%c\n",&str1,str1,"Hello",*str1); getch(); /* *scr0='a'; erreur à l'execution */ *str1='a'; printf ("\n&str0=%d str0=%d Hello=%d str0->=%c\n",&str0,str0,"Hello",*str0); printf ("\n&str1=%d str1=%d Hello=%d str1->=%c\n",&str1,str1,"Hello",*str1); getch(); }
sous visual C++ en reprenant l'exemple de la doc de TIGCC qui explique la différence entre ces deux déclarations : char *str = "Hello"; et char str[] = "Hello";
mais ya des trucs que je comprend pas
1/ L'erreur à l'execution mais ça doit être à cause VC++ donc c pas grave ....
2/ Le résultat du prog
str0 = Hello str1=Hello &str0=1245048 str0=4325520 Hello=4325520 str0->=H &str1=1245040 str1=1245040 Hello=4325520 str1->=H &str0=1245048 str0=4325520 Hello=4325520 str0->=H &str1=1245040 str1=1245040 Hello=4325520 str1->=a
j'espère que je me trompe mais j'ai comme l'impression que ça signifie que str1 pointe sur lui même tout en pointant sur le tableau qui contient la chaîne "Hello" parce que je peux la modifier ... enfin bref je comprend rien
si quelqu'un peu m'expliquer le problème merci