線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1565
推到 Plurk!
推到 Facebook!

請問動態陣列的大小問題?

答題得分者是:dllee
kenbcb
中階會員


發表:171
回覆:129
積分:60
註冊:2003-07-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-08-14 14:52:08 IP:61.222.xxx.xxx 未訂閱
請問各位: 我開一個動態陣列,結果其大小只有4byte,但我傳值為19 int len = Socket->ReceiveLength(); AnsiString lenstr = (AnsiString)len; Application->MessageBox(lenstr.c_str(),"Check",MB_OK); char *b = new char[len]; Socket->ReceiveBuf(b,sizeof(b)); TMemoryStream *ms=new TMemoryStream; ms->Write(b,sizeof(b)); ms->SaveToFile("View.dat"); delete ms;
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-08-14 22:52:30 IP:61.224.xxx.xxx 未訂閱
kenbcb你好,     
引言: int len = Socket->ReceiveLength(); AnsiString lenstr = (AnsiString)len; Application->MessageBox(lenstr.c_str(),"Check",MB_OK); char *b = new char[len]; Socket->ReceiveBuf(b,sizeof(b)); TMemoryStream *ms=new TMemoryStream; ms->Write(b,sizeof(b)); ms->SaveToFile("View.dat"); delete ms;
其中b 為一指標,所以sizeof(b)大小只有4而已, 應該把sizeof(b)改為len就可以了,因為len才是資料真正的長度 如: Socket->ReceiveBuf(b,len); 我幫你測過了,ok! 國泰平安 發表人 -
kenbcb
中階會員


發表:171
回覆:129
積分:60
註冊:2003-07-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-08-15 18:36:11 IP:61.222.xxx.xxx 未訂閱
再請問一下, char *pack; char bf[9]; memmove(pack,bf,9); 但sizeof(pack)時,得到為4,不是9; 請問要如何解決呢?
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-08-15 20:22:54 IP:61.224.xxx.xxx 未訂閱
引言: 再請問一下, char *pack; char bf[9]; memmove(pack,bf,9); 但sizeof(pack)時,得到為4,不是9; 請問要如何解決呢?
對不起,看到第二次還問相同的問題,我忍不住想笑 >>>>>>>>>>>沒空更新的網頁... href="http://dllee.adsldns.org">http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-08-16 13:26:23 IP:61.224.xxx.xxx 未訂閱
「缺席」??    小弟覺得dllee前輩答的很好耶,    還是你有什麼不懂的地方?或問題沒解決?    您的這個結案我想很多人都很錯諤... 國泰平安
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-08-17 14:00:43 IP:61.224.xxx.xxx 未訂閱
引言: 「缺席」?? 小弟覺得dllee前輩答的很好耶, 還是你有什麼不懂的地方?或問題沒解決? 您的這個結案我想很多人都很錯諤... 國泰平安 < face="Verdana, Arial, Helvetica"> 哈哈! 我並沒有解答喔,因為在 C/C 的動態陣列(在此限 new 出來的東東)本來就不能得到大小的資訊,除非自已維護。 TMemoryStream 是一個物件,它有 Size 的屬性,由物件本身維護。如果自已不想維護,可以借用它。 另外,答題不是為了要得分,否則,我可能早就不想答題了,因為還有好多答了也不見得給分,人就已經不見了... 最近工作忙,也很少答題(還是有在看問題),只是正好看到這個問題實在是忍不住想笑,才回的。 gemi0305 版主,可別太在意喔 <>沒空更新的網頁... href="http://dllee.adsldns.org">http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-08-17 15:23:27 IP:61.224.xxx.xxx 未訂閱
引言: 另外,答題不是為了要得分,否則,我可能早就不想答題了,因為還有好多答了也不見得給分,人就已經不見了... 最近工作忙,也很少答題(還是有在看問題),只是正好看到這個問題實在是忍不住想笑,才回的。 gemi0305 版主,可別太在意喔 < face="Verdana, Arial, Helvetica"> 小弟也有同感,在老早之前,我就對答題給分只有「隨緣」兩字, 我也是從一個發問者,慢慢才變成答題者,但偶爾還是會發問啦, 當我在發問的時候,覺得,只要有人肯熱心幫助我, 我就應該表示些謝意,必竟那也是占用了別人寶貴的時間, 雖然有時不能得到最滿意的答案,但大家也是竭盡所能的幫忙, 至少在之中的討論,另學到了一些別人的經驗~「經驗」是無價, 短短幾次的討論就有如此收穫,是非常值得。 而受到這麼多人的幫忙,覺得自己該回饋此版, 才慢慢試著從發問者,開始解答一些能幫的上忙的問題。 也慢慢了解,一個「答題者」並不好當,尤其是一個長久的答題者, 除了要有滿腹的知識,更要有「不求回報」的雅量, 相信大家遇到的「失蹤人口」應該都不少... 縱然如此, 我還是依然當一個熱心的答題者~ 如果收到我會答的問題,一定第一時間給予答覆, 能幫各位寫個範例就一定寫,能幫各位看個程式就一定看, 除非正好上班且忙碌中~ 不論我的答題得分數從好幾個星期前,就一直是26~ = =~ 但我記得po了不少文章說~呵 都變成打字練習了吧~ 我希望,這種答題給分的良性互動能繼續下去, 給個分對「發問者」有損失嗎? 沒有, 不給分,對「答題者」有損失嗎? 也沒有, 但,給分,是種對答題者的額外鼓勵,何樂不為呢 國泰平安
kenbcb
中階會員


發表:171
回覆:129
積分:60
註冊:2003-07-15

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-08-17 21:47:25 IP:61.229.xxx.xxx 未訂閱
謝謝各位~ 我只是想知道如困有new的方式~能不能得到size~但不行~ 所以謝謝各位幫忙~ 另外說明一下~我是不小心按到缺席的~我不知道可不可以更改~ 我要知道大家都是熱心幫忙~所以謝謝你們
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-08-17 23:19:15 IP:61.224.xxx.xxx 未訂閱
To kenbcb: 真的不滿意可以不給分,沒有關係,真的,不然,就不需要設個(缺席)啦 < > > 之前比較空,由七十幾分到破百幾乎可以說是能搶就搶,哈哈,回想起來還真的蠻刺激的,等下次工作比較有空時,再來試試每天最多可得幾分 < > 加油囉,以您的實力,應該可以很快就破百了,建議,去 > 沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
系統時間:2024-09-07 7:41:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!