簡體   English   中英

使用strcat附加字符時出現意外行為

[英]unexpected behavior while appending chars using strcat

char buf[256];
char c48 = (char) 48;
char c49 = (char) 49;
char c50 = (char) 50;
char c51 = (char) 51;
char c52 = (char) 52;
char c53 = (char) 53;
strcpy(buf, &c48);
strcat(buf, &c49);
strcat(buf, &c50);
strcat(buf, &c51);
strcat(buf, &c52);
strcat(buf, &c53);
puts(buf);

我期望輸出的字符串為012345,但是當我執行提示時,結果為0?10?210?3210?43210?543210?。 我不明白為什么會這樣。 可能是使用strcat方法復制了buf嗎? 很抱歉這個基本問題。 我來自Java背景。

strcpy(buf, &c48);

第二個參數不是指向以NUL結尾的字符串的指針。 此行及其后的所有行均顯示未定義的行為。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM