chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

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

掃碼添加小助手

加入工程師交流群

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

#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 申請一段堆內(nèi)存,假設(shè)內(nèi)存空間足夠大。

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

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

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

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

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

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

malloc 用于申請堆內(nèi)存,但是堆內(nèi)存里面的內(nèi)容是不確定的。

剛才我們用的兩個編譯器,gcc 默認(rèn)把堆內(nèi)存初始化成了 0,所以使用 getchar 獲取多個字符后,最后是 ?,是個標(biāo)準(zhǔn)的字符串。

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

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

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

    關(guān)注

    8

    文章

    3156

    瀏覽量

    75882
  • 編程
    +關(guān)注

    關(guān)注

    89

    文章

    3704

    瀏覽量

    96264
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4922

    瀏覽量

    72237

原文標(biāo)題:養(yǎng)成良好的編程習(xí)慣 | 堆內(nèi)存初值不一定是0

文章出處:【微信號:學(xué)益得智能硬件,微信公眾號:學(xué)益得智能硬件】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

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

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

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

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

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

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

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

    行業(yè)資訊
    腦極體
    發(fā)布于 :2025年07月15日 15:50:41

    :整流電路的“中流砥柱”

    大家好!今天我們來聊聊電子電路中個非常重要的元器件——橋。無論是家用電器、工業(yè)設(shè)備,還是通信設(shè)備,橋都扮演著不可或缺的角色。它雖然看起來不起眼,但卻是整流電路的“中流砥柱”。那
    的頭像 發(fā)表于 04-01 17:07 ?1642次閱讀

    golang內(nèi)存分配

    內(nèi)存碎片. 線程擁有一定的 cache, 可用于無鎖分配. 同時 Go 對于 GC 后回收的內(nèi)存頁, 并不是馬上歸還給操作系統(tǒng), 而是會延遲歸還, 用于滿足未來的內(nèi)存需求. ?? ?
    的頭像 發(fā)表于 03-31 15:00 ?317次閱讀
    golang<b class='flag-5'>內(nèi)存</b>分配

    DLP4500需要使用近紅外光源,如何判斷這個芯片是否適用?

    因為要對人體掃描,之前直再看450NIR,650NIR做的投影產(chǎn)品,但這種太少還都是在國外才有的賣。 所以想問下,如果用850nm的光源,是不是用普通的DMD芯片就可以,不一定是近紅外波段的NIR系列芯片。 另外,如果有人
    發(fā)表于 02-21 17:15

    TLK2201的數(shù)據(jù)端口對應(yīng)不齊是怎么回事?

    這個片子我選擇的是unframed模式,輸入的端口0-9的數(shù)據(jù)不一定是對應(yīng)在輸出端口0-9輸出。而是在上電后,輸入輸出端口0-9是隨機循環(huán)對應(yīng)的。即有可能輸入端9-
    發(fā)表于 02-07 07:29

    指針被釋放后就變成了空指針嗎

    ;} ? ? 這段代碼大家看下有沒有問題,能不能順利運行? 前面三行都沒有問題,指針 s 指向了內(nèi)存,把字符串 helloworld 拷貝到
    的頭像 發(fā)表于 01-22 09:23 ?539次閱讀

    兒童坐姿矯正器是如何實現(xiàn)語音提示功能?

    兒童坐姿不正影響健康,坐姿矯正器可輔助改善。NV256H等語音芯片提供清晰語音提示,支持自定義內(nèi)容,幫助孩子養(yǎng)成良好坐姿習(xí)慣,控制模式出廠前配置,上電200ms后發(fā)指令。
    的頭像 發(fā)表于 01-03 14:13 ?747次閱讀
    兒童坐姿矯正器是如何實現(xiàn)語音提示功能?

    LDC1000設(shè)置RPMIN和RPMAX初值時,code值指的是什么?

    請問設(shè)置RPMIN和RPMAX初值時,code值指的是什么
    發(fā)表于 01-02 07:48

    Triton編譯器與GPU編程的結(jié)合應(yīng)用

    優(yōu)化,以及生成高效的并行執(zhí)行計劃。 GPU編程的挑戰(zhàn) GPU編程面臨的主要挑戰(zhàn)包括: 編程復(fù)雜性 :GPU編程需要對硬件架構(gòu)有深入的理解,包括線程、塊和網(wǎng)格的概念。
    的頭像 發(fā)表于 12-25 09:13 ?1144次閱讀

    C語言中申請的內(nèi)存能不能自動釋放

    C語言中申請的內(nèi)存能不能自動釋放?每次都要手動 free 太麻煩,也容易忘記。 學(xué)過 C++ 的同學(xué),應(yīng)該首先能想到智能指針。 但是這是C語言,沒有類和對象、構(gòu)造析構(gòu)這些技術(shù),想要自動釋放很難
    的頭像 發(fā)表于 11-27 09:33 ?728次閱讀

    DDR內(nèi)存頻率對性能的影響

    DDR內(nèi)存頻率對性能的影響主要體現(xiàn)在以下幾個方面: 、數(shù)據(jù)傳輸速度 內(nèi)存條的頻率(MHz)代表每秒的傳輸速度,即內(nèi)存每秒能夠執(zhí)行操作的次數(shù)。頻率越高,意味著數(shù)據(jù)傳輸速度越快。這有助于
    的頭像 發(fā)表于 11-20 14:25 ?5051次閱讀

    美光:人工智能影響PC內(nèi)存的供需平衡

    兼總經(jīng)理Dinesh Bahal說。 HBM,即高帶寬內(nèi)存,是種與數(shù)據(jù)中心 GPU 起使用的產(chǎn)品。它的專長是大帶寬,這對計算尤為重要。您可能還記得 AMD 曾經(jīng)嘗試在游戲顯卡 Vega 中使用 HBM
    的頭像 發(fā)表于 11-12 09:13 ?872次閱讀