女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

養(yǎng)成良好的編程習慣|堆內(nèi)存初值不一定是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 申請一段堆內(nèi)存,假設內(nèi)存空間足夠大。

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

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

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

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

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

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

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

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

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

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

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

    關注

    8

    文章

    3109

    瀏覽量

    75001
  • 編程
    +關注

    關注

    88

    文章

    3682

    瀏覽量

    94881
  • 代碼
    +關注

    關注

    30

    文章

    4887

    瀏覽量

    70266

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

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

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    golang內(nèi)存分配

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

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

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

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

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

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

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

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

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

    美光:人工智能影響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 ?664次閱讀

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

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

    轉(zhuǎn)載 golang內(nèi)存分配

    . 線程擁有一定的 cache, 可用于無鎖分配. 同時 Go 對于 GC 后回收的內(nèi)存頁, 并不是馬上歸還給操作系統(tǒng), 而是會延遲歸還, 用于滿足未來的內(nèi)存需求. ?? ? 在 1.10 以前 go
    的頭像 發(fā)表于 09-05 14:12 ?441次閱讀
    轉(zhuǎn)載 golang<b class='flag-5'>內(nèi)存</b>分配

    請問下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)存故障燈亮會是cpu的問題嗎

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

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

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

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

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

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

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

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

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

    單相整流橋怎么測量好壞

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