[問題] char pointer問題
開發平台(Platform): (Ex: Win10, Linux, ...)
Arch Linux
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
GCC
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
無
問題(Question):
char a='a';
char *ptr=&a;
cout<<ptr;
預期的正確結果(Expected Output):
基於以下程式碼:
char a[]="hello world";
char *ptr=&a;
cout<<ptr;
會輸出hello world,因此猜測該問題應該輸出a
錯誤結果(Wrong Output):
a?????(?為亂碼)
補充說明(Supplement):
因平常寫code不常使用char的pointer,突然同學問了character相關的問題就卡住了。
因轉換為void*的address看起來都正常,
因此目前個人猜測是因為轉換時因a宣告並非array,因此只有1byte,
只有記下'a',而沒有記下'\0',因此造成ptr讀取錯誤。
求各位前輩指點迷津!!謝謝各位!!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 163.22.18.53 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1573492737.A.CCF.html
→
11/12 01:46,
5年前
, 1F
11/12 01:46, 1F
→
11/12 01:46,
5年前
, 2F
11/12 01:46, 2F
→
11/12 01:47,
5年前
, 3F
11/12 01:47, 3F
是的 關於轉換一詞需要作修正,但我知道會把pointer當chat,我的問題點是為何輸出會不只輸出內容,額外有亂碼
※ 編輯: b90022790 (163.22.18.53 臺灣), 11/12/2019 07:57:36
→
11/12 08:40,
5年前
, 4F
11/12 08:40, 4F
→
11/12 08:40,
5年前
, 5F
11/12 08:40, 5F
→
11/12 08:40,
5年前
, 6F
11/12 08:40, 6F
→
11/12 08:40,
5年前
, 7F
11/12 08:40, 7F
→
11/12 08:45,
5年前
, 8F
11/12 08:45, 8F
→
11/12 08:45,
5年前
, 9F
11/12 08:45, 9F
→
11/12 08:45,
5年前
, 10F
11/12 08:45, 10F
好的 非常謝謝您的幫忙!!
講解的非常清楚!已經了解原因了!謝謝!
※ 編輯: b90022790 (163.22.18.106 臺灣), 11/12/2019 08:55:01
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章