亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

#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;
}

代碼很簡(jiǎn)單,使用 malloc 申請(qǐng)一段堆內(nèi)存,假設(shè)內(nèi)存空間足夠大。

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

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

乍一看,好像程序沒(méi)什么問(wèn)題。

然后把程序運(yùn)行起來(lái),多測(cè)試幾遍,也確實(shí)沒(méi)發(fā)現(xiàn)問(wèn)題。

但是如果把代碼換個(gè)平臺(tái),比如放到了 Windows 上,使用 DEV C++ 編譯器,再次運(yùn)行,程序好像出了問(wèn)題。

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

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

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

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

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

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

    關(guān)注

    8

    文章

    3160

    瀏覽量

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

    關(guān)注

    89

    文章

    3704

    瀏覽量

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

    關(guān)注

    30

    文章

    4928

    瀏覽量

    72746

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    如何在應(yīng)用程序調(diào)試期間分析棧和使用情況

    隨著 AMD Vitis 統(tǒng)軟件平臺(tái) 2021.2 的發(fā)布,Vitis 引入了個(gè) Tcl 腳本,用于在應(yīng)用程序運(yùn)行的特定時(shí)間點(diǎn)協(xié)助查找棧和內(nèi)存使用情況。該腳本已延續(xù)到后續(xù)的 V
    的頭像 發(fā)表于 10-24 16:54 ?459次閱讀
    如何在應(yīng)用程序調(diào)試期間分析棧和<b class='flag-5'>堆</b>使用情況

    WebGL/Canvas 內(nèi)存泄露分析

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

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

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

    水泥廠料機(jī)與取料機(jī)無(wú)線連鎖控制解決方案實(shí)施案例

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

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

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

    等等黨不一定會(huì)贏,但小鵬G7一定會(huì)!

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

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

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

    golang內(nèi)存分配

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

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

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

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

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

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

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

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

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

    C語(yǔ)言中申請(qǐng)的內(nèi)存能不能自動(dòng)釋放

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

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

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

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

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