這是我的代碼;我想交換下面的名字。我在練習這個;在C中交換雙指針
我得到的錯誤是
Segmentation fault
任何援助將不勝感激。
void nameSwap(char **wife[3],char **husband[3])
{
int i;
char **tmp[3];
for(i=0;i<3;i++)
{
*tmp[i]=*wife[i];
*wife[i] = *husband[i];
*husband[i] = *tmp[i];
}
int main(int argc,char *argv[])
{
char *name1[3]={"Chicago","University","Computer"};
char *name2[3]={"I","Love","Uchicago"};
int k;
char **p1[3];
char **p2[3];
for(k=0;k<3;k++)
{
*p1[k]=name1[k];
*p2[k]=name2[k];
}
for(k=0;k<3;k++)
{
printf("%s %s\n",*p1[k],*p2[k]);
}
nameSwap(&p1[3],&p2[3]);
for(k=0;k<3;k++)
{
printf("%s %s\n",*p1[k],*p2[k]);
}
return 0;
}
你應該多增加一些星星。試試成爲一名六星級程序員。 – Olaf
@Mia'char ** p1 [3];'表示'char **'的數組。 – BLUEPIXY
請正確縮進你的代碼 – chqrlie