什麼時候需要給指標分配記憶體malloc

2021-10-09 08:18:37 字數 460 閱讀 7716

#include

intmain()

注意:c語言中是不可以直接給指標賦值的,如:*p = 5.需要先申請一塊記憶體,才可以給指標賦值。但字串常量卻可以。

#include

intmain()

如上:「hello」正常賦值給了指標p,也可以正常輸出字串,但輸出時,填的是p而不是*p,因為字串常量"hello"出現在乙個表示式中時,"hello"表示式使用的值就是這些字元所儲存的位址(在常量區),而不是這些字元本身。

雙引號做了3件事:

1.申請了空間(在常量區),存放了字串

2. 在字串尾加上了』/0』

3.返回位址

你這裡就是 返回的位址 賦值給了 p

什麼時候需要動態分配記憶體?

我講解一下c語言中動態分配記憶體的函式,可能有些初學c語言的人不免要問了 我們為什麼要通過函式來實現動態分配記憶體呢?系統難道不是會自動分配記憶體嗎?既然有人會問這樣的問題,那麼我在這裡好好的講解一下吧!首先讓我們熟悉一下計算機的記憶體吧!在計算機的系統中有四個記憶體區域 1 棧 在棧裡面儲存一些我...

C 類在什麼時候分配記憶體

一直以為記憶體分配是在呼叫建構函式的時候。現在發現我錯了。昨天在看c 的賦值運算時,想做一下筆記。乙個類賦值給另乙個類時,先呼叫建構函式,在給成員變數乙個個賦值,靜態成員變數不用賦值,因為靜態成員變數屬於類,被類的所有例項共享,所以不用被賦值,方法屬於類,不用被賦值,也賦不了值。突然想到呼叫靜態的屬...

全域性變數什麼時候分配記憶體

c語言中的全域性變數,分為初始化的 int abc 100 和未初始化的 int abcd 初始化的全域性變數,在程式載入的時候,會從程式檔案中,對映 大部分作業系統,只有第一次使用該位址空間時,才載入到記憶體中 到記憶體的資料段。未初始化的全域性變數部分,對映到程序位址空間的資料段,unix中,用...