• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            那誰(shuí)的技術(shù)博客

            感興趣領(lǐng)域:高性能服務(wù)器編程,存儲(chǔ),算法,Linux內(nèi)核
            隨筆 - 210, 文章 - 0, 評(píng)論 - 1183, 引用 - 0
            數(shù)據(jù)加載中……

            (C++)一個(gè)愚蠢的錯(cuò)誤

            #include <string.h>
            #include 
            <string>
            using namespace std;

            typedef 
            struct Test
            {
                
            string name;
                
            int    a;
            }Test;

            int main()
            {
                Test tTest;
                memset(
            &tTest, 0sizeof(Test));

                
            return 0;
            }

            立此為據(jù),長(zhǎng)點(diǎn)記性.


            posted on 2008-06-06 21:30 那誰(shuí) 閱讀(4894) 評(píng)論(23)  編輯 收藏 引用 所屬分類(lèi): C\C++

            評(píng)論

            # re: (C++)一個(gè)愚蠢的錯(cuò)誤  回復(fù)  更多評(píng)論   

            #include <string.h>
            #include <string>
            很有才
            2008-06-06 21:44 | 羅賓李

            # re: (C++)一個(gè)愚蠢的錯(cuò)誤[未登錄](méi)  回復(fù)  更多評(píng)論   

            暈倒
            chinaunix上的是你哦,我是voipexplore。string內(nèi)存布局不透明,只能用new類(lèi),不能用malloc類(lèi)。
            另樓上 包含string.h 是為了用memset
            2008-06-06 22:00 | CppExplore

            # re: (C++)一個(gè)愚蠢的錯(cuò)誤  回復(fù)  更多評(píng)論   

            @羅賓李
            string.h是C中的函數(shù),使用memset的頭文件,string就不必說(shuō)了吧?我還不至于犯string和string.h不分的錯(cuò)誤.
            2008-06-06 22:17 | 創(chuàng)

            # re: (C++)一個(gè)愚蠢的錯(cuò)誤  回復(fù)  更多評(píng)論   

            @CppExplore

            以后注意兄弟的ID了:)
            2008-06-06 22:22 | 創(chuàng)

            # re: (C++)一個(gè)愚蠢的錯(cuò)誤  回復(fù)  更多評(píng)論   

            C++里的結(jié)構(gòu)就是類(lèi),不可以memset哦
            2008-06-07 00:56 |

            # re: (C++)一個(gè)愚蠢的錯(cuò)誤  回復(fù)  更多評(píng)論   

            錯(cuò)誤就是 memset( ...string ) ?

            有點(diǎn)巧,我同事也犯過(guò)這個(gè)錯(cuò)。:D
            2008-06-07 09:27 | Kevin Lynx

            # re: (C++)一個(gè)愚蠢的錯(cuò)誤[未登錄](méi)  回復(fù)  更多評(píng)論   

            長(zhǎng)知識(shí)了。
            2008-06-07 13:25 | ron

            # re: (C++)一個(gè)愚蠢的錯(cuò)誤  回復(fù)  更多評(píng)論   

            能否請(qǐng)樓主詳細(xì)解說(shuō)一下錯(cuò)誤?
            2008-06-07 15:01 | kam

            # re: (C++)一個(gè)愚蠢的錯(cuò)誤  回復(fù)  更多評(píng)論   

            可以正常執(zhí)行啊!可以解釋一下么?謝謝!!
            2008-06-07 20:24 | 林茂

            # re: (C++)一個(gè)愚蠢的錯(cuò)誤[未登錄](méi)  回復(fù)  更多評(píng)論   

            樓上的,C++里結(jié)構(gòu)就是類(lèi),而不是原生的C結(jié)構(gòu)。用memset會(huì)把類(lèi)里的一些必要數(shù)據(jù)也清零。比如如果類(lèi)有虛函數(shù),則就有虛表指針,你用memset會(huì)把虛函數(shù)表指針置為0,這樣你的類(lèi)還有多態(tài)嗎,你的程序還是健壯的嗎
            2008-06-07 22:51 | christanxw

            # re: (C++)一個(gè)愚蠢的錯(cuò)誤  回復(fù)  更多評(píng)論   

            #include <cstring>
            #include <string>
            2008-06-09 18:05 | Wang Feng

            # re: (C++)一個(gè)愚蠢的錯(cuò)誤  回復(fù)  更多評(píng)論   

            @christanxw
            thanks for explanation
            2008-06-09 18:22 | 林茂

            # re: (C++)一個(gè)愚蠢的錯(cuò)誤  回復(fù)  更多評(píng)論   

            OK, mark 下
            2008-06-10 10:21 | 零宇

            # re: (C++)一個(gè)愚蠢的錯(cuò)誤[未登錄](méi)  回復(fù)  更多評(píng)論   

            ......我也這么做過(guò)。。。。
            2008-06-12 19:28 | 楊粼波

            # re: (C++)一個(gè)愚蠢的錯(cuò)誤[未登錄](méi)  回復(fù)  更多評(píng)論   

            @創(chuàng)
            “C++對(duì)我而言就是有STL帶class能處理多態(tài),繼承的C. ”
            最初的C++大體是這樣,除了STL。
            然而,現(xiàn)在還這么想的話,犯下這個(gè)錯(cuò)誤是必然——C++的對(duì)象模型遠(yuǎn)不止C那么簡(jiǎn)單,背后有很多事情需要注意的。甚至,有時(shí)候構(gòu)造函數(shù)是否為inline就決定了代碼是否為二進(jìn)制兼容。
            2008-06-15 19:53 | raof01

            # re: (C++)一個(gè)愚蠢的錯(cuò)誤  回復(fù)  更多評(píng)論   

            看完后,嚇出一身汗,對(duì)內(nèi)存對(duì)象模型的理解實(shí)在不夠深入。
            2008-06-15 23:30 | alexandercer

            # re: (C++)一個(gè)愚蠢的錯(cuò)誤  回復(fù)  更多評(píng)論   

            不能把一個(gè)string型的對(duì)象memset了。俺對(duì)CString對(duì)象做過(guò)相同的操作,結(jié)果,自然所崩潰了。
            2008-06-19 16:30 | abettor

            # re: (C++)一個(gè)愚蠢的錯(cuò)誤  回復(fù)  更多評(píng)論   

            我只學(xué)過(guò)C++ 沒(méi)用過(guò)這樣的用法,有構(gòu)造函數(shù)為什么還要如此呢
            2008-07-02 20:13 | foxtail

            # re: (C++)一個(gè)愚蠢的錯(cuò)誤  回復(fù)  更多評(píng)論   

            這種錯(cuò)誤,我一般不會(huì)犯。
            因?yàn)榻Y(jié)構(gòu)體里我絕對(duì)不會(huì)放類(lèi)對(duì)象,我只會(huì)放基本類(lèi)型數(shù)據(jù),
            如果有類(lèi)對(duì)象,我一定會(huì)放在類(lèi)里,如果是用到類(lèi),一定會(huì)把memset要不放在構(gòu)造函數(shù)里,要不就放在成員函數(shù)里
            2008-10-13 15:53 | x

            # re: (C++)一個(gè)愚蠢的錯(cuò)誤  回復(fù)  更多評(píng)論   

            學(xué)習(xí)了。
            2009-09-24 19:41 | kiven

            # re: (C++)一個(gè)愚蠢的錯(cuò)誤  回復(fù)  更多評(píng)論   

            額..struct里頭的string不能按字節(jié)memset吧。。。
            2010-01-26 00:10 | qiuxiafei

            # re: (C++)一個(gè)愚蠢的錯(cuò)誤  回復(fù)  更多評(píng)論   

            不錯(cuò),學(xué)習(xí)了
            2010-02-10 18:51 | wantukang

            # re: (C++)一個(gè)愚蠢的錯(cuò)誤  回復(fù)  更多評(píng)論   

            不過(guò)是個(gè)慣性問(wèn)題
            2010-09-01 09:30 | lcm
            中文字幕无码久久人妻| 国产国产成人久久精品| 久久婷婷五月综合成人D啪| 亚洲欧美日韩中文久久| 欧美黑人激情性久久| 国产精品青草久久久久婷婷| 一本久久久久久久| 国产精品久久久久久久人人看| 伊人久久大香线蕉亚洲五月天| 77777亚洲午夜久久多喷| 日韩电影久久久被窝网| 久久精品亚洲精品国产色婷| 狠狠色伊人久久精品综合网| 久久亚洲国产成人精品性色| 国产成人综合久久精品尤物| 国产精品99久久久精品无码| 99久久精品免费| 国内精品人妻无码久久久影院 | 久久成人国产精品一区二区| 精品久久久无码人妻中文字幕| 青青草国产精品久久| 亚洲伊人久久精品影院| 亚洲精品国产第一综合99久久| 久久久精品免费国产四虎| 久久久久se色偷偷亚洲精品av| 中文字幕亚洲综合久久| 国产精品久久国产精品99盘 | 久久国产精品久久久| 777午夜精品久久av蜜臀| 一本大道久久东京热无码AV| 国产成人久久精品麻豆一区| 久久美女网站免费| 亚洲一区二区三区日本久久九| 东京热TOKYO综合久久精品| 亚洲va久久久噜噜噜久久狠狠| 狠狠色丁香婷婷久久综合| 久久人人爽人人爽人人片AV麻豆| 青青青青久久精品国产| 狠狠色噜噜狠狠狠狠狠色综合久久| 97久久超碰国产精品2021| 东京热TOKYO综合久久精品|