J'ai un programme ci-dessous
void swap(char **s1,char **s2);
int main()
{
char *list[] = {
"Das",
"Kannan",
"Rajendran",
"Shahul"
};
printf("Before swap list[0] = %s,list[1] = %s\n",*list[0],*list[1]);
swap(&list[0],&list[1]);
printf("After swap list[0] = %s,list[1] = %s\n",*list[0],*list[1]);
return 0;
}
void swap(char **s1,char **s2)
{
char *t;
t = *s1;
*s1 = *s2;
*s2 = t;
}
J'essaie de permuter les adresses de la liste[0] et de la liste[1].
Visual Studio 2008 génère une erreur lors de l'exécution (démarrage du débogage) de ce programme. L'erreur générée est
Exception non gérée à 0x1029984f (msvcr90d.dll) dans ConsoleApp.exe : 0xC0000005 : Violation d'accès à la lecture de l'emplacement 0x00000044.
Aucune erreur de compilation.
Puis-je savoir pourquoi l'utilisation de pointeur à pointeur ne fonctionne pas correctement ? A void swap(char *s1,char *s2)
n'a pas non plus fonctionné.