p char malloc sizeof char 20 ,解釋一下這句話是什麼意思。謝謝啦

2021-04-20 19:02:41 字數 2910 閱讀 8275

1樓:匿名使用者

就相當於

char p[20];

只不過用malloc()直接分配了記憶體單元。

t=(char*)malloc(n*sizeof(char))的含義?

2樓:匿名使用者

申請分配n個單位char記憶體空間,並把指標賦予t

3樓:沙漠浮萍

原型:extern void *malloc(unsigned int num_bytes);

標頭檔案:自在tc2.0中可以用malloc.

h或 alloc.h (注意:alloc.

h 與 malloc.h 的內容是完全一致的),而在visual c++6.0中可以用malloc.

h或者stdlib.h。

功能:分配長度為num_bytes位元組的記憶體塊

返回值:如果分配成功則返回指向被分配記憶體的指標(此儲存區中的初始值不確定),否則返回空指標null。當記憶體不再使用時,應使用free()函式將記憶體塊釋放。

函式返回的指標一定要適當對齊,使其可以用於任何資料物件。

說明:關於該函式的原型,在舊的版本中malloc返回的是char型指標,新的ansic標準規定,該函式返回為void型指標,因此必要時要進行型別轉換。

名稱解釋:malloc的全稱是memory allocation,中文叫動態記憶體分配,當無法知道記憶體具體位置的時候,想要繫結真正的記憶體空間,就需要用到動態的分配記憶體。

c語言型別題main(){ char *p,*q; p=(char*)malloc(sizeof(char)*20);q=p; scanf("%s%s",p,q);

4樓:tt靜水深流

malloc函式,在堆中分配一片記憶體,記憶體大小為傳遞引數,sizeof(char)*20就是20個位元組。

返回值為void *型別,使用(char*)強制轉換,使得型別匹配。

q=p後,q和p指向的是同一片記憶體空間。

scanf("%s%s",p,q);因為p,q指向同一片記憶體空間,先輸入ijk放入p,其實*p和*q都是ijk。

後面輸入xyz放入q,p和q所指的都是xyz.

int *t; t=(char*)malloc(n*sizeof(char)):c語言中什麼意思啊?求解答

5樓:匿名使用者

int *t;表示定義int型的指標變數t

(char*)實現指標的強制型別轉換(因為後面的那個函式返回值的型別是void型別的指標)

malloc還有後面的括號裡的整個是一個函式,返回void型指標,用來申請額外的記憶體空間,返回的指標指向所申請記憶體空間的首地址,若記憶體不夠申請失敗則返回null

malloc後面的括號裡的內容是對該函式輸入的引數,意義是所需要申請的記憶體的總大小,上面的式子中用的是一個運算結果的值當做引數值輸入

那個算式的n應該是你要儲存的物件的個數,sizeof函式用來算單個char型別變數的大小,相乘的結果就是總大小

整體來說,就是在為n個char型別的變數申請儲存空間,把申請到空間的首個單元的地址存到指標t中

6樓:匿名使用者

如果把malloc分配記憶體看作是買塊地皮,那麼這句話的意思就是我要申請買塊地,這塊地的大小是 n。然後系統分配了一塊地給你,但這塊地肯定有座標的對吧,不然你上哪兒去找到這塊的呢,所以用t這個變數把位置記錄起來,以後我想要在這塊地上造房子什麼的,直接從t中獲得位置。

7樓:匿名使用者

malloc是個函式表示開闢一塊記憶體空間 開多少 sizeof(char)表示一個char型別空間 乘上n就是就是所開空間的大小 然後最前面的(char *)表示開闢的空間是放char型別資料的

c語言 關於malloc的問題 char *p; p=(char *)malloc (20 * sizeof (char ) ); 和char p【20】有什麼區別呢

8樓:匿名使用者

void main(int argc, char * argv){int nc=100, nr=200;

int i,j;

char **a; // a[nr][nc] -- *a[nr] -- a[j][i]

a = (char **) malloc(sizeof(char *) * nr);

for (j=0;j釋放空間: free(a);

9樓:匿名使用者

這個首先你要搞明白堆空間和棧空間,用malloc分配的記憶體是在堆空間的,如果你不free,這個空間在程式的執行過程中就一直存在。如果是定義的臨時的陣列變數,那他是在棧裡面,這個空間在函式執行完,會被系統**。

定義的陣列不可能發生記憶體不夠的現象,如果不夠,編譯都通不過。

10樓:匿名使用者

malloc是在堆空間開的記憶體 屬於靜態的 必須要程式設計師自己用free()去釋放這段空間

當記憶體不夠時 malloc()回返回錯誤的

char p【20】 是在棧空間中開啟的記憶體 當次函式結束棧中的所有變數都會被釋放

c語言定義char **p;p=(char *)malloc(sizeof(char)*5);p是什麼?

11樓:匿名使用者

char **p;定義一個二維指標

p=(char **)malloc(sizeof(char*) *5); 先分配行空間

for( i=0;i<5;i++ )

p[i]=(char *)malloc(sizeof(char)*15); 再分配每一行的空間

這樣才正確

12樓:左灬王

堆指標 **p是堆指標的地址

幫我解釋一下這句話什麼意思,謝謝

大致釋義 年輕人進入社會 展開自己的人生,須要學會三件事。1 接受社會中普遍存在的 與自己認知相悖的現象。社會是複雜的 世事的產生髮展是存在諸多因素的,涉世未深的人在最初面對它們時會難以忍受,然而卻無力去深究和改變它們,倘若執意與之為敵,不但不能真正地辨別善惡和伸張正義,也容易因忤逆世俗而受到傷害。...

這句話什麼意思,幫我解釋一下,這句話什麼意思?知道幫我解釋一下

意思是他和你一起親熱 如果你敢絕不可以讓一個人留戀太長時間的話,那麼我感覺你就應該好好的去照顧自己。啊?這你不知道?這句話什麼意思?知道幫我解釋一下 只是心中的感慨萬千 當作前世相欠。這意思是說,心中有無限感慨。目前這個忙一定幫。就當是前世欠的。此生來還的意思。請幫忙解釋一下這句話是什麼意思 我覺得...

誰能解釋一下這句話什麼意思,誰能解釋一下這句話什麼意思??

希望可以跟你談戀愛,這輩子就想跟你過了 望樓主採納 讓我的真心能打動你,我會為你看到美麗的愛情,我們一起共度餘生,編織出美好的回憶。白頭偕老 認為他愚蠢得人認為一個瞎子什麼也看不見點燈不是浪費麼,認為他智慧的人認為瞎子點燈不是為自己點燈,更是為了別人點亮一盞明燈在黑暗前進的道路上 不僅照亮了自己前進...