在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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)輸入獲取一個(gè)字符串,直到遇到換行符結(jié)束。

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

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

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

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

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

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

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

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

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

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

    關(guān)注

    8

    文章

    3102

    瀏覽量

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

    關(guān)注

    88

    文章

    3674

    瀏覽量

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

    關(guān)注

    30

    文章

    4882

    瀏覽量

    70046

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

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

收藏 人收藏

    評論

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

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

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

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

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

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

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

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

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

    談JVM xmx, xms等內(nèi)存相關(guān)參數(shù)合理性設(shè)置

    的,提高內(nèi)存占用(Memory Footprint)就有可能同時(shí)優(yōu)化這兩個(gè)標(biāo)的,這篇文章就來聊聊內(nèi)存相關(guān)內(nèi)容。 內(nèi)存占用般指應(yīng)用運(yùn)行需要的所有內(nèi)存
    的頭像 發(fā)表于 10-10 14:42 ?1044次閱讀

    請問下LM3433中Vadj是不是一定是需要大于0.3V?

    請問下LM3433中Vadj是不是一定是需要大于0.3V,如果Vadj的電壓小于0.3V,比如Vadj=0.25V,那么Vsense是等于0.3/16.667還是0.25/16.667?謝謝!
    發(fā)表于 09-04 06:16

    主板內(nèi)存故障燈亮?xí)莄pu的問題嗎

    主板內(nèi)存故障燈亮并不一定是CPU的問題,但CPU與內(nèi)存之間的交互確實(shí)可能影響這故障現(xiàn)象。以下是對主板內(nèi)存故障燈亮可能原因的分析:
    的頭像 發(fā)表于 09-02 14:42 ?5046次閱讀

    堆棧和內(nèi)存的基本知識

    本文主要聊聊關(guān)于堆棧的內(nèi)容。包括堆棧和內(nèi)存的基本知識。常見和堆棧相關(guān)的 bug,如棧溢出,內(nèi)存泄漏,內(nèi)存分配失敗等。后面介紹軟件中堆棧統(tǒng)計(jì)的重要性,以及如何使用工具工具軟件中堆棧使用
    的頭像 發(fā)表于 08-29 14:10 ?829次閱讀
    堆棧和<b class='flag-5'>內(nèi)存</b>的基本知識

    用的PGA309和24LC16BE,校準(zhǔn)完成之后零點(diǎn)輸出4mA,讀取eeprom的值發(fā)現(xiàn)程序的標(biāo)志位變了,為什么?

    發(fā)現(xiàn)程序的標(biāo)志位變了,原來正確的值應(yīng)為5449,更改之后的值就不一定是什么值了,請問有沒有遇見過同樣的問題,可能產(chǎn)生這種情況的原因在哪啊?
    發(fā)表于 08-19 08:30

    如何使用SystemView的監(jiān)控功能

    SystemView能夠監(jiān)視應(yīng)用程序如何使用動(dòng)態(tài)存儲。這意味著,如果應(yīng)用程序中使用了C或C++、自定義或RTOS提供的內(nèi)存池對象,我們可以跟蹤這些對象的使用情況。SystemView可以在
    的頭像 發(fā)表于 08-09 18:07 ?1133次閱讀
    如何使用SystemView的<b class='flag-5'>堆</b>監(jiān)控功能

    LM723可調(diào)電路PCB板

    此板不一定與LM723可調(diào)電路相同,謹(jǐn)慎下載
    發(fā)表于 07-17 13:02 ?2次下載

    單相整流橋怎么測量好壞

    單相整流橋種常見的電子元件,主要用于將交流電轉(zhuǎn)換為直流電。在測量單相整流橋的好壞時(shí),需要掌握一定的方法和技巧。 、單相整流橋
    的頭像 發(fā)表于 07-16 09:22 ?1805次閱讀

    STM32H750DMA+SPi內(nèi)存數(shù)據(jù)不一致的原因?

    發(fā)現(xiàn)用stm32H750 dma+spi讀寫數(shù)據(jù)時(shí)發(fā)現(xiàn)當(dāng)spi速度大于8M時(shí)出現(xiàn)內(nèi)存不一致的問題,我再讀之前已經(jīng)用SCB_CleanInvalidateDCache_by_Addr這個(gè)函數(shù)無效化內(nèi)存了,速度小于8M時(shí)沒有這個(gè)問題
    發(fā)表于 05-24 07:53

    大模型體機(jī)是在“賣盒子”嗎?

    大模型不一定要捆綁硬件來凸顯價(jià)值,但一定要結(jié)合硬件來充分釋放價(jià)值
    的頭像 發(fā)表于 05-15 09:55 ?2201次閱讀
    大模型<b class='flag-5'>一</b>體機(jī)是在“賣盒子”嗎?

    深度論證-高速走線控制100歐姆阻抗一定是最好的選擇嗎?

    分走線如果沒有明確協(xié)議規(guī)定,那就按100歐姆來控制。很多工程師其實(shí)都不一定很清楚的知道內(nèi)在的理論和原因,但是也會潛意識的控制100歐姆,可見100歐姆差分線這個(gè)觀念是多么的深入人心! 但是,深入人心
    發(fā)表于 05-13 17:12
    主站蜘蛛池模板: 国内精品久久久久久影院老狼 | 国产视频一二三 | 免费视频亚洲 | 你懂在线 | 日本黄大乳片免费观看 | 成人欧美一区二区三区黑人免费 | 中文字幕一区二区三区精品 | 毛片新网址 | 久久香蕉国产线看观看亚洲片 | 欧美爱爱网址 | 欧美视频不卡一区二区三区 | 天堂网站www天堂资源在线 | 四虎成人欧美精品在永久在线 | 酒色成人 | 国产精品自在线天天看片 | 你懂的国产精品 | 黄视频免费在线看 | 偷偷久久 | 91免费网站在线看入口黄 | 天天做天天爽爽快快 | 天堂bt在线种子网 | 久久是精品 | 视频亚洲一区 | 日日操夜夜操免费视频 | 日本免费黄色小视频 | 中日韩精品视频在线观看 | 18黄网站 | 亚洲羞羞裸色私人影院 | 国产在线小视频 | 2021久久精品国产99国产精品 | 久久夜色精品国产噜噜 | 欧美成人伊人久久综合网 | 国产人成午夜免费噼啪视频 | 四虎精品成在线播放 | 久久综合色视频 | 高清欧美色欧美综合网站 | 午夜影院一级片 | 中文字幕一区二区三区四区五区人 | 中文字幕在线乱码免费毛片 | 天天狠狠弄夜夜狠狠躁·太爽了 | 性欧美乱又伦 |