• <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>

            Error

            C++博客 首頁 新隨筆 聯(lián)系 聚合 管理
              217 Posts :: 61 Stories :: 32 Comments :: 0 Trackbacks
            int *p = new int[10]; delete [] p; 既然 delete 時無需提供數組大小,那么顯然編譯器是知道數組的大小(或者說界限的)。 那么 編譯器是如何知道數組大小的?(比如維護了一張表、按特定格式存儲……) 既然知道數組大小,編譯器能否自動檢查數組越界的情況?不檢查是否是為了性能? 編程時如何利用這份信息? 另外,不借助搜索引擎如何解答這個問題,有類似文檔之類的東西可以參考嗎?修改 1:拿msvc來說,在new/malloc返回的ptr前n個字節(jié)里保存了大小,msvc還可以用_msize()來獲得size,具體保存在哪可以調試看看; 2:編譯器未必知道,有些size是運行時決定的.真正記錄大小是在運行時,而不是編譯期.數組越界不能自動檢查,ptr + offset,這種方式程序無法知道程序員的本意要訪問的到底是不是數組那塊內存 3:特定環(huán)境下可能有用啊.(例:一個妹子問我在vs里怎么通過一個new出來的指針獲得size,然后就可以利用這些信息換妹子崇拜的眼神) PS:上調試器. 作者:吉林小伙 鏈接:https://www.zhihu.com/question/27112272/answer/35301722 來源:知乎 著作權歸作者所有。商業(yè)轉載請聯(lián)系作者獲得授權,非商業(yè)轉載請注明出處。 1:new的時候已經多new了點空間把長度寫進去了 2:不能檢查,因為不是所有的指針都是new出來,誰知道到底指向的是什么 3:根據C++標準的話,沒辦法利用 4:反正VC++已經98%以上跟標準完全一致了,而且gcc跟clang的私貨也不比VC++少,你去msdn看C++語法手冊就好了 C++ Language Reference,手冊只要你讀兩遍,你就什么都明白了。我初三就是讀了兩遍VC++5.0時代的msdn的語法手冊學會C++的。當然要熟悉還是要靠練習,光讀的話就算都記住了,也只能一知半解。 作者:vczh 鏈接:https://www.zhihu.com/question/27112272/answer/35291952 來源:知乎 著作權歸作者所有。商業(yè)轉載請聯(lián)系作者獲得授權,非商業(yè)轉載請注明出處。
            posted on 2016-03-22 10:21 Enic 閱讀(398) 評論(0)  編輯 收藏 引用 所屬分類: C/C++技巧
            日日狠狠久久偷偷色综合0| 国产精品美女久久久久av爽 | 熟妇人妻久久中文字幕| 亚洲中文字幕无码久久精品1| 国产成人久久精品一区二区三区| 久久精品国产精品亚洲精品| 久久久无码一区二区三区| 国产精品久久成人影院| 国产激情久久久久影院| 中文字幕久久久久人妻| 久久精品中文字幕久久| 香蕉久久夜色精品国产2020| 97久久国产亚洲精品超碰热| 久久精品国产99久久丝袜| 亚洲午夜久久久久久噜噜噜| 亚洲国产精品久久久久| 久久精品国产亚洲αv忘忧草| 成人久久精品一区二区三区| 一本色道久久88综合日韩精品 | 久久久女人与动物群交毛片| 精品久久久久久中文字幕| 久久综合亚洲色HEZYO社区 | 久久久久综合中文字幕| 狠狠色婷婷久久一区二区三区| 色99久久久久高潮综合影院| 97久久精品无码一区二区| 亚洲国产另类久久久精品 | 久久久久无码国产精品不卡| 亚洲国产欧美国产综合久久| 久久影视国产亚洲| 久久精品一区二区| 国产情侣久久久久aⅴ免费| 久久久久波多野结衣高潮| 性欧美大战久久久久久久 | 久久久久久久久66精品片| 久久e热在这里只有国产中文精品99| 久久亚洲精品国产精品| 亚洲va中文字幕无码久久不卡| 伊人久久成人成综合网222| 久久午夜福利电影| 一级做a爰片久久毛片看看|