我下面有一个程序
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;
}
我正在尝试交换 list[0] 和 list[1] 的地址。
Visual Studio 2008 在运行(开始调试)此程序时产生错误。产生的错误是
ConsoleApp.exe 中 0x1029984f (msvcr90d.dll) 处的未处理异常:0xC0000005:访问冲突读取位置 0x00000044。
没有编译错误。
我可以知道为什么指向使用的指针的指针不能正常工作。也想知道为什么
void swap(char *s1,char *s2)
也没有工作。