[問題] 請教個指標和陣列觀念問題
開發平台(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
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章