[問題] 請教個指標和陣列觀念問題

看板C_and_CPP (C/C++)作者 (cchichi)時間12年前 (2014/03/27 12:28), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
開發平台(Platform): C 問題(Question): 在function reverse2 裡面,我一開始嘗試用tmp = *str[i]的方式去讀取資料 但是一直出現segmentaion fault, 我用*(*str+i)去取代的話就可以執行了 我的觀念中str[i] 應該和*(str+i)是相同的,但為什麼卻會出現錯誤訊息呢? 餵入的資料(Input): Hello 預期的正確結果(Expected Output): olleH 錯誤結果(Wrong Output): Segmentaion fault 程式碼(Code):(請善用置底文網頁, 記得排版) void reverse2(char **str){ char tmp; int length = strlen(*str); int i =0; while(i<(length/2)){ tmp = *(*str+i); *(*str+i) = *(*str+length-i-1); *(*str+length-i-1) = tmp; i++; } } int main(){ char *str = malloc(1000 *sizeof(char)); scanf("%s",str); printf("Pre. String:%s\n",str); reverse2(&str); printf("Rev. String:%s\n",str); free(str); return 0; } 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.33.129.211 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1395894513.A.9CD.html ※ 編輯: lovebluetea 來自: 114.33.129.211 (03/27 12:28)

03/27 13:23, , 1F
03/27 13:23, 1F
文章代碼(AID): #1JCwZndD (C_and_CPP)
文章代碼(AID): #1JCwZndD (C_and_CPP)