編譯沒問題,運行不了。
你這個代碼是看運氣,我這裡可以輸出。int main()
{
char* p[4]={"asdf","xczv","df","gr"};
char* temp;
for(int i=0;i
{
for(int j=0;j
{
if(strcmp(p[j],p[j+1])>0)
{
temp=p[j+1];
p[j+1]=p[j];
p[j]=temp;
}
}
}
for(int i=0;i<4;i++)
{
cout<<p[i]<<endl;
}
return 0;
}
程序終止應該是在語句strcmp(p[j],p[j+1])這裡,當j=3時,j+1=4,p[4]指向了一個沒有處理過的內存空間。導致錯誤。