日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

養(yǎng)成良好的編程習慣|堆內存初值不一定是0

學益得智能硬件 ? 來源:學益得智能硬件 ? 2024-12-18 09:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

什么是良好的編程習慣?可以看下這段代碼,有沒有什么問題?

#include 
#include 


int main()
{
char*s=(char*)malloc(1024);


    char ch;
    int i = 0;


    while ((ch = getchar()) != '
')
    {
        *(s + i++) = ch;
    }


    printf("%s
", s);


    return 0;
}

代碼很簡單,使用 malloc 申請一段堆內存,假設內存空間足夠大。

通過 getchar 配合 while 循環(huán),從標準輸入獲取一個字符串,直到遇到換行符結束。

最后就是把獲取的字符串輸出。

乍一看,好像程序沒什么問題。

然后把程序運行起來,多測試幾遍,也確實沒發(fā)現(xiàn)問題。

但是如果把代碼換個平臺,比如放到了 Windows 上,使用 DEV C++ 編譯器,再次運行,程序好像出了問題。

問題就出在了 malloc 函數(shù)上面。

malloc 用于申請堆內存,但是堆內存里面的內容是不確定的。

剛才我們用的兩個編譯器,gcc 默認把堆內存初始化成了 0,所以使用 getchar 獲取多個字符后,最后是 ?,是個標準的字符串。

而使用 dev C++,最后一個字符的后面并不是 ?,輸出也就出了問題。

良好的編程習慣就是使用內存的時候盡量初始化,如果代碼這樣寫,不管移植到哪個平臺,都不會出問題。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 內存
    +關注

    關注

    9

    文章

    3238

    瀏覽量

    76529
  • 編程
    +關注

    關注

    90

    文章

    3724

    瀏覽量

    97459
  • 代碼
    +關注

    關注

    30

    文章

    4977

    瀏覽量

    74420

原文標題:養(yǎng)成良好的編程習慣 | 堆內存初值不一定是0

文章出處:【微信號:學益得智能硬件,微信公眾號:學益得智能硬件】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    你的路由器信號變弱可能只是因為SMA接口出現(xiàn)了氧化層

    信號變差不一定是固件或覆蓋問題,很可能是被忽視的物理細節(jié)——SMA接口氧化。本文由德索連接器(Dosin)技術專家撰寫,深入剖析趨膚效應對高頻傳輸?shù)挠绊懀沂咀杩故鋵е滦盘枔p耗的底層邏輯。
    的頭像 發(fā)表于 04-22 14:06 ?104次閱讀
    你的路由器信號變弱可能只是因為SMA接口出現(xiàn)了氧化層

    面向視覺語言導航的任務驅動式地圖學習框架MapDream介紹

    在視覺語言導航(VLN)中,地圖長期作為獨立模塊構建,并通過固定接口交由導航策略使用。無論是BEV網(wǎng)格、拓撲圖還是語義記憶模塊,這些表示大多脫離策略學習而設計。結果是,機器人即使掌握場景的信息,也仍可能繞行甚至偏離目標,因為地圖中編碼的,并不一定是決定導航成功的關鍵信息。
    的頭像 發(fā)表于 03-02 10:40 ?636次閱讀
    面向視覺語言導航的任務驅動式地圖學習框架MapDream介紹

    curl中的TFTP實現(xiàn):整數(shù)下溢導致內存越界讀取漏洞

    的條件:必須開啟 TFTP no options 模式,并且需要服務器將塊大小協(xié)商到個極小的值。 攻擊難度高 :利用該漏洞讀取到有價值信息(如密碼、密鑰等)的難度非常高。攻擊者很難精確控制內存的布局
    發(fā)表于 02-19 13:55

    容易造成單片機內存溢出的幾個陷阱介紹

    的函數(shù)遞歸調用的時候,大家盡量采用別的方式去代替。 區(qū):當申請了動態(tài)區(qū)域,用完的時候一定要記得釋放(free),如果沒有釋放,那么這塊內存區(qū)域就將處于不可用狀態(tài)(就像占著茅坑不拉屎
    發(fā)表于 01-23 07:25

    C語言嵌入式系統(tǒng)編程注意事項-內存操作

    啟動后第條要執(zhí)行的指令的位置。 記?。汉瘮?shù)無它,唯指令集合耳;你可以調用個沒有函數(shù)體的函數(shù),本質上只是換個地址開始執(zhí)行指令! 數(shù)組vs動態(tài)申請 在嵌入式系統(tǒng)中動態(tài)內存申請存在比
    發(fā)表于 01-04 07:31

    如何成為編程高手

    、多與別人交流   三人行必有我?guī)?,也許在次和別人不經(jīng)意的談話中,就可以迸出靈感的火花。多上上網(wǎng),看看別人對同問題的看法,會給你很大的啟發(fā)。   7、良好編程風格   注意
    發(fā)表于 12-29 06:57

    不同位數(shù)的CPU的變量所占的內存

    )上述表格適用于KEIL C51 和 KEIL MDK兩個版本中,不一定適用于其它編輯器,具體內容,請查看KEIL軟件手冊。 2)CPU的位數(shù)不能決定int占幾個字節(jié),int是個關鍵字,只能本編譯器
    發(fā)表于 12-09 07:30

    使用Keil MicroLIB時自動設置大小

    出錯。 忍無可忍,決定分析下微庫是怎么管理的。 首先打開項目編譯后生成的鏈接地址映射文件Linker Address Map,我們這里是SmartOSF0_Debug.map 找到符號表段
    發(fā)表于 12-09 07:04

    深度睡眠時為什么串口會發(fā)送一堆 \\0?

    RT,初始化串口,發(fā)送數(shù)據(jù)然后休眠,串口工具會收到CW32L010發(fā)送的一堆? ,AI統(tǒng)計了下 128個字節(jié),是什么原因啊?
    發(fā)表于 11-28 07:25

    和棧的區(qū)別

    個由C/C 編譯的程序占用的內存分為以下幾個部分: 棧區(qū)(stack):由編譯器自動分配釋放 ,存放函數(shù)的參數(shù)值,局部變量的值等。其操作方式類似于數(shù)據(jù)結構中的棧。 區(qū)(heap):
    的頭像 發(fā)表于 11-27 18:13 ?1261次閱讀

    WebGL/Canvas 內存泄露分析

    的 JavaScript 對象未釋放要復雜得多。個現(xiàn)代 WebGL/Canvas 應用的內存版圖實際上跨越了三個截然不同但又相互關聯(lián)的內存區(qū)域: 圖 V8 引擎管理的 JavaScript
    的頭像 發(fā)表于 10-21 11:40 ?561次閱讀
    WebGL/Canvas <b class='flag-5'>內存</b>泄露分析

    串口DMA接收方式打開,為什么在開啟IDLE中斷的情況下還需要開啟DMA中斷呢?

    戶接口rx_indicate來讀取數(shù)據(jù),此時,串口收到的數(shù)據(jù)并不一定是完整的幀,破壞了使用IDLE中斷的意義。所以,為什么要開啟DMA中斷呢? 此處,可以看到不論是IDLE中斷還是DMA傳輸中斷,都會導致用戶回調的調用。
    發(fā)表于 09-29 08:30

    水泥廠料機與取料機無線連鎖控制解決方案實施案例

    在水泥廠的生產(chǎn)流程中,料機和取料機協(xié)同作業(yè)至關重要。某大型水泥廠的料區(qū)和取料區(qū)相隔一定距離,以往采用有線連接實現(xiàn)二者的連鎖控制,但隨著生產(chǎn)規(guī)模擴大和設備老化,問題頻發(fā)。
    的頭像 發(fā)表于 09-02 18:06 ?1008次閱讀
    水泥廠<b class='flag-5'>堆</b>料機與取料機無線連鎖控制解決方案實施案例

    工業(yè)網(wǎng)關的內存有什么功能

    工業(yè)網(wǎng)關的內存是其核心硬件組件之,承擔著保障設備高效、穩(wěn)定運行的關鍵作用,具體功能可從以下幾個方面詳細說明: 、臨時數(shù)據(jù)存儲與處理 實時數(shù)據(jù)緩存:工業(yè)網(wǎng)關需要實時采集來自傳感器、PLC(可
    的頭像 發(fā)表于 08-15 10:15 ?700次閱讀

    等等黨不一定會贏,但小鵬G7一定會!

    行業(yè)資訊
    腦極體
    發(fā)布于 :2025年07月15日 15:50:41
    南木林县| 和田县| 镇江市| 邓州市| 禹城市| 祁东县| 舞阳县| 武汉市| 南宁市| 沅江市| 黄山市| 泗水县| 抚松县| 西平县| 当雄县| 崇阳县| 武邑县| 新昌县| 南乐县| 景宁| 阿坝| 湘西| 正宁县| 吉木萨尔县| 涪陵区| 竹北市| 天水市| 邯郸县| 英超| 察雅县| 柳江县| 孟津县| 嘉黎县| 大余县| 方正县| 文昌市| 山东省| 建平县| 台山市| 盐城市| 海阳市|