看板 C_and_CPP 關於我們 聯絡資訊
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) 程式執行到一半有問題,只印到BOOK就停住了 希望得到的正確結果: 最後印出BOOK FOR YOU 程式跑出來的錯誤結果: 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) VC++ 6.0 on vista 有問題的code: (請善用置底文標色功能) #include <stdio.h> int main(void) { char **ptr; int n,m; char *temp; char *string1="BOOK"; char *string2="FOR"; char *string3="YOU"; ptr=&temp; *(ptr+0) = string1; *(ptr+1) = string2; *(ptr+2) = string3; printf("\n ptr 的位址 = %p\n", ptr); for (n=0;n<3;n++) { printf("\n *(ptr+%d) 所存的位址 = %p\n",n,*(ptr+n)); printf("*(ptr+%d) 指向字串 %s\n",n,*(ptr+n)); for (m=0; *(*(ptr+n)+m) != '\0';m++) printf("*(*(ptr+%d)+%d)=%c \n",n,m,*(*(ptr+n)+m)); } return 0; } 補充說明: -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.168.2.36
VictorTom:等等, 那個*(ptr+1)和*(ptr+2)應該都不能用的吧!? 12/20 01:42
sunneo:temp至少要是char* temp[3]吧 12/20 01:46
sunneo:不然這樣要跑的話 得看看有無stack alignment 12/20 01:46
pongremix:樓上大大這樣可以跑說 12/20 01:49
pongremix:感謝回答 謝謝 12/20 01:53