全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2487
推到 Plurk!
推到 Facebook!

使用strcat時碰到的字元指標問題

尚未結案
Mmmoney
一般會員


發表:9
回覆:19
積分:5
註冊:2007-10-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-04-25 18:29:17 IP:220.130.xxx.xxx 訂閱

這是出現錯誤結果的程式碼

[code cpp]
char* TBclass:: ........
{
char tttmp[10000]=" ";
char *tmp;
for(i=1;i<10000;i )
{
tmp=&K[i].str ;
strcat(tttmp, tmp );
}
tmp=tttmp;
return tmp;
}

tmp陣列大小和K陣列一樣.
K[i].str的型態是char.

回傳後的結果是亂碼,如下
8i1@?811i 111@%!1/!11iO%iDY&4i1@x!1? A11?WiiO@wiwi1O?p1ii@xixi8Odii@€iX1xi矲1ii@xixiiiyi€?OO@OO?OOO@?蕸M9XL?96@/?C?91m偰UCi@iiiiiii簨J嶠ii@?4ii^yiii@yiiOO?813@@114CS9覡774i@7i-ii-ii4iiyiii@yiCOOf?4i@t44i19188i@?鬑4ii??iii8@=?iiii2f?8?88?88iO@??888888期?2222@??it?t??it?t??

[/code]


================================

但改成下列就能出現正確結果:

[code cpp]
char *tttmp=new char[10000];
for(i=1;i<10000;i )
{ tttmp[i]= K[i].str;
}
char* rt= tttmp;
return rt;
[/code]

結果是我想要的字母 數字!



請問第一段程式的錯誤是什麼阿?
我本來是想學習使用strcat的!!!
我怎麼看都"看似合理"
網路上查詢strcat都沒得到解答.

GGump
一般會員


發表:2
回覆:16
積分:8
註冊:2006-08-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-05-01 10:26:46 IP:118.166.xxx.xxx 未訂閱
編輯記錄
GGump 重新編輯於 2008-05-01 10:29:50, 註解 無‧
Mmmoney
一般會員


發表:9
回覆:19
積分:5
註冊:2007-10-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-05-02 13:53:06 IP:220.130.xxx.xxx 訂閱
非常謝謝你.願意跳出來解答
不過我的錯誤跟那篇文章一樣嗎? 是指標跑到另一塊記憶體,以致於記憶體空間不夠嗎?
我看完那文章
再回頭解讀我的...
嗯......>"<
還是待高人指點一下!!
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-05-04 18:29:48 IP:122.118.xxx.xxx 未訂閱
你沒搞懂 char, char[] char * 之間的關係.
這方面你再查看看吧.
Mmmoney
一般會員


發表:9
回覆:19
積分:5
註冊:2007-10-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-05-05 10:07:29 IP:220.130.xxx.xxx 訂閱

好..謝謝你!!

===================引 用 暗黑破壞神 文 章===================
你沒搞懂 char, char[] char * 之間的關係.
這方面你再查看看吧.

系統時間:2024-04-26 19:05:42
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!