C語言動態內存開辟

      網友投稿 959 2022-05-30

      C語言中內存開辟

      可以從文檔里看出,該函數參數是一個要開辟的字節數。

      具體怎么操作呢:

      它說的是什么意思呢? 簡單地說就是,該函數可以將內存塊移動到新的位置,在這種情況下,將返回新的位置。即使塊被移動,內存塊的內容也會保留到新舊大小中較小的大小。如果新大小較大,則新分配的部分的值不確定。在ptr為空的情況下,該函數的行為與malloc完全相同,它分配一個新的大小字節塊,并返回一個NULL。

      ptr:指向先前用malloc、calloc或realloc分配的內存塊的指針,以便重新分配。 size: 指內存塊的新大小(以字節為單位)。如果它是0, ptr指向一個現有的內存塊,那么ptr指向的內存塊將被回收,并返回一個空指針。

      該函數的功能是: 為num元素數組分配一個內存塊,每個元素的大小都是字節長,并將其所有的 位 初始化為0。

      三種內存開辟具體實例

      三種內存開辟方式比較和總結

      malloc 、realloc、calloc三個函數都是用來動態開辟內存的,并且開辟的都是一段連續的內存。

      malloc和realloc:realloc主要是用于修改一個原先已經分配好的內存塊的大小;而malloc主要是用來開辟一個以字節為單位的新的內存塊。

      如果realloc是用來擴大或者縮小一個內存塊: ●擴大內存塊:那么這塊內存原來的內容依然保留,新增的內存添加到原內存快的后面,新增加的空間并沒有進行初始化,只是增加了大小; ●縮小內存:該內存塊尾部部分的內存會被拿掉,剩余部分依舊保留; ●如果該內存塊無法改變大小, realloc 就會重新分配一塊正確的內存,并把原來內存的內容復制到新的內存塊上。因此,在使用realloc之后,就不能再使用指向舊空間的指針,而是使用realloc返回的新指針

      calloc和malloc 主要是前者在返回指向內存的指針之前把它初始化為 0。并且calloc參數包括所需元素的數量和每個元素的字節數。根據這些值來計算總共需要分配多少內存。

      使用完之后必須要用 free 釋放空間,否則會造成內存泄漏。

      內存泄漏(非常重要)

      當動態分配的內存不再需要使用時,這塊內存就應該被釋放,這樣可以被重新分配使用。分配但不在使用完成之后釋放內存會造成內存泄漏。 內存泄漏最終將會一點一點的榨干內存,最后只能重啟。萬一實在一個大型的服務器,那后果難以想象,對于一個程序猿來說大概就差不多可以收拾東西滾蛋了,啊哈哈哈哈。

      常見的動態內存錯誤

      對NULL的解引用

      對分配的內存進行操作時越過邊界

      釋放非動態分配的內存

      C語言之動態內存開辟

      試圖釋放一塊動態分配的內存的一部分以及一塊動態內存被釋放之后繼續使用。

      malloc 和 free沒有配套使用

      對動態開辟的內存重復釋放

      本文轉載自異步社區。

      其他

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:【STM32平衡小車】線性CCD( TSL1401CL)巡線
      下一篇:ABAP下載的病毒掃描Virus Scan 配置方法
      相關文章
      亚洲AV无码精品色午夜果冻不卡 | 亚洲黄色激情视频| 97se亚洲国产综合自在线| 久久久久亚洲AV无码永不| 无码色偷偷亚洲国内自拍| 亚洲视频网站在线观看| 亚洲无码视频在线| 亚洲人成www在线播放| 亚洲国产精品一区二区成人片国内| 亚洲人成电影网站免费| 亚洲欧洲国产精品你懂的| 亚洲午夜福利精品无码| 亚洲精品tv久久久久久久久久| 亚洲中文字幕一二三四区苍井空| 亚洲一区在线免费观看| 亚洲国产高清在线| 亚洲综合国产精品| 亚洲黄色片免费看| 亚洲伊人久久大香线蕉在观| 亚洲av无码国产精品色午夜字幕| 久久久久亚洲精品无码系列| 亚洲国产综合人成综合网站| 亚洲日韩中文在线精品第一| 亚洲一区二区三区影院| 亚洲AV日韩AV永久无码色欲| 亚洲人成影院午夜网站| 国产成人精品亚洲日本在线| 亚洲日韩一区精品射精| 亚洲精品国产suv一区88| 亚洲免费视频观看| 国产亚洲精品成人AA片| 亚洲av无码偷拍在线观看| 国产亚洲精品美女久久久久久下载| 亚洲?V无码乱码国产精品 | 中文文字幕文字幕亚洲色| 国产精品亚洲专区无码唯爱网| 亚洲久悠悠色悠在线播放| 亚洲精品伦理熟女国产一区二区 | 亚洲电影日韩精品| 亚洲午夜久久久影院伊人 | 婷婷亚洲综合一区二区|