亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

C語言編程中分配內存空間的相關函數

2020-01-26 14:57:08
字體:
來源:轉載
供稿:網友

C語言malloc()函數:動態分配內存空間
頭文件:

#include <stdlib.h>

malloc() 函數用來動態地分配內存空間(如果你不了解動態內存分配,請查看:C語言動態內存分配及變量存儲類別),其原型為:

void* malloc (size_t size);

【參數說明】size 為需要分配的內存空間的大小,以字節(Byte)計。

【函數說明】malloc() 在堆區分配一塊指定大小的內存空間,用來存放數據。這塊內存空間在函數執行完成后不會被初始化,它們的值是未知的。如果希望在分配內存的同時進行初始化,請使用 calloc() 函數。

【返回值】分配成功返回指向該內存的地址,失敗則返回 NULL。

由于申請內存空間時可能有也可能沒有,所以需要自行判斷是否申請成功,再進行后續操作。

如果 size 的值為 0,那么返回值會因標準庫實現的不同而不同,可能是 NULL,也可能不是,但返回的指針不應該再次被引用。

注意:函數的返回值類型是 void *,void 并不是說沒有返回值或者返回空指針,而是返回的指針類型未知。所以在使用 malloc() 時通常需要進行強制類型轉換,將 void 指針轉換成我們希望的類型,例如:

char *ptr = (char *)malloc(10); // 分配10個字節的內存空間,用來存放字符

動態內存分配舉例:

#include <stdio.h> /* printf, scanf, NULL */#include <stdlib.h> /* malloc, free, rand, system */int main (){ int i,n; char * buffer; printf ("輸入字符串的長度:"); scanf ("%d", &i); buffer = (char*)malloc(i+1); // 字符串最后包含 /0 if(buffer==NULL) exit(1); // 判斷是否分配成功 // 隨機生成字符串 for(n=0; n<i; n++)  buffer[n] = rand()%26+'a'; buffer[i]='/0'; printf ("隨機生成的字符串為:%s/n",buffer); free(buffer); // 釋放內存空間 system("pause"); return 0;}

運行結果:

輸入字符串的長度:20隨機生成的字符串為:phqghumeaylnlfdxfirc

C語言calloc()函數:分配內存空間并初始化
頭文件:

#include <stdlib.h>

calloc() 函數用來動態地分配內存空間并初始化為 0,其原型為:

 void* calloc (size_t num, size_t size);

calloc() 在內存中動態地分配 num 個長度為 size 的連續空間,并將每一個字節都初始化為 0。所以它的結果是分配了 num*size 個字節長度的內存空間,并且每個字節的值都是0。

【返回值】分配成功返回指向該內存的地址,失敗則返回 NULL。

如果 size 的值為 0,那么返回值會因標準庫實現的不同而不同,可能是 NULL,也可能不是,但返回的指針不應該再次被引用。

注意:函數的返回值類型是 void *,void 并不是說沒有返回值或者返回空指針,而是返回的指針類型未知。所以在使用 calloc() 時通常需要進行強制類型轉換,將 void 指針轉換成我們希望的類型,例如:

char *ptr = (char *)calloc(10, 10); // 分配100個字節的內存空間

calloc() 與 malloc() 的一個重要區別是:calloc() 在動態分配完內存后,自動初始化該內存空間為零,而 malloc() 不初始化,里邊數據是未知的垃圾數據。下面的兩種寫法是等價的:

// calloc() 分配內存空間并初始化char *str1 = (char *)calloc(10, 2);// malloc() 分配內存空間并用 memset() 初始化char *str2 = (char *)malloc(20);memset(str2, 0, 20);

代碼示例:

#include <stdio.h>#include <stdlib.h>int main (){ int i,n; int * pData; printf ("要輸入的數字的數目:"); scanf ("%d",&i); pData = (int*) calloc (i,sizeof(int)); if (pData==NULL) exit (1); for (n=0;n<i;n++) {  printf ("請輸入數字 #%d:",n+1);  scanf ("%d",&pData[n]); } printf ("你輸入的數字為:"); for (n=0;n<i;n++) printf ("%d ",pData[n]);  free (pData); system("pause"); return 0;}

運行結果:

要輸入的數字的數目:4請輸入數字 #1:126請輸入數字 #2:343請輸入數字 #3:45請輸入數字 #4:234你輸入的數字為:126 343 45 234

上面的程序會將你輸入的數字存儲起來,然后輸出。因為在程序運行時根據你的需要來動態分配內存,所以每次運行程序你可以輸入不同數目的數字。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本精品久久久| 亚洲美女av在线| 欧美激情精品久久久久久| 日本伊人精品一区二区三区介绍| 日韩中文字幕免费看| 狠狠久久五月精品中文字幕| 992tv成人免费视频| 久久久av亚洲男天堂| 日韩在线播放av| 国产精品九九九| 国产精品扒开腿做爽爽爽男男| 国产亚洲精品va在线观看| 亚洲性日韩精品一区二区| 尤物九九久久国产精品的特点| 色噜噜狠狠狠综合曰曰曰88av| 91av在线网站| 欧美大尺度在线观看| 大桥未久av一区二区三区| 日韩电影中文 亚洲精品乱码| 国产精品久久久久久久久粉嫩av| 中文字幕日韩av综合精品| 亚洲色图av在线| 久久电影一区二区| 91精品国产91久久久久久吃药| 日韩av在线一区二区| 欧美激情二区三区| xvideos国产精品| 亚洲欧美一区二区三区情侣bbw| 中文字幕欧美精品日韩中文字幕| 97婷婷大伊香蕉精品视频| 国产精品一区二区三区久久久| 日韩小视频网址| 日韩经典中文字幕在线观看| 91综合免费在线| 国产精品自产拍在线观| 久久久久这里只有精品| 国产成人综合av| 岛国视频午夜一区免费在线观看| 国产精品电影久久久久电影网| 国产+成+人+亚洲欧洲| 91九色国产社区在线观看| 中文字幕亚洲一区二区三区| 欧美日韩视频免费播放| 久久99久久99精品免观看粉嫩| 欧美尺度大的性做爰视频| 亚洲自拍偷拍第一页| 国产成人av在线| 欧美在线视频观看| 亚洲色图狂野欧美| 亚洲aⅴ男人的天堂在线观看| 欧美超级乱淫片喷水| 国产在线精品自拍| 日韩在线视频免费观看高清中文| 久久精品国产视频| 日韩一级裸体免费视频| 中文字幕亚洲欧美日韩2019| 国产精品久久久久久久久久久新郎| 色妞久久福利网| 亚洲欧美在线磁力| 日韩精品久久久久久福利| 2019亚洲日韩新视频| 国产精品一区二区三区在线播放| 性夜试看影院91社区| 欧美极品少妇xxxxⅹ喷水| 久久福利视频导航| 久久婷婷国产麻豆91天堂| 日韩极品精品视频免费观看| 日韩亚洲一区二区| 国产精品日日摸夜夜添夜夜av| 2019亚洲男人天堂| 国产精品十八以下禁看| 欧美日韩成人黄色| 日韩在线免费观看视频| 国产精品视频精品视频| 国产精品成人一区| 中文字幕亚洲无线码a| 久热精品在线视频| 国内精品小视频在线观看| 色综合五月天导航| 中文字幕亚洲综合久久| 国产日本欧美一区二区三区在线| 中文字幕欧美精品日韩中文字幕| 国产91精品久久久| 欧美疯狂xxxx大交乱88av| 久久久999精品免费| 亚洲欧美国产另类| 亚洲剧情一区二区| 成人激情春色网| 久久夜色精品国产欧美乱| 国产精品中文字幕在线| 亚洲欧美成人精品| 国产精品久久久久久久天堂| 日韩av在线影院| 性金发美女69hd大尺寸| 亚洲精品永久免费精品| 欧美精品福利视频| 日韩视频在线免费观看| 国产成人精品综合久久久| 亚洲第一福利网站| 国产成人精品优优av| 国模精品视频一区二区三区| 91免费的视频在线播放| 狠狠综合久久av一区二区小说| 欧美一区视频在线| 精品亚洲一区二区三区| 欧美性极品少妇精品网站| 两个人的视频www国产精品| 97婷婷大伊香蕉精品视频| 伊人久久综合97精品| 国产成人精品综合久久久| 国产精品自产拍在线观| 欧美激情欧美激情在线五月| 粉嫩老牛aⅴ一区二区三区| 91免费精品国偷自产在线| 欧美限制级电影在线观看| 久久久成人av| 久久99青青精品免费观看| 精品日韩美女的视频高清| 欧美激情精品久久久久久大尺度| 97香蕉久久超级碰碰高清版| 国产91九色视频| 亚洲一区亚洲二区| 性欧美xxxx视频在线观看| 91免费欧美精品| 国产精品香蕉在线观看| 午夜精品国产精品大乳美女| 日韩视频在线观看免费| 国产精品久久久精品| 亚洲国产精品yw在线观看| 日本电影亚洲天堂| 精品国产福利视频| 国产精品高清免费在线观看| 欧美国产日韩免费| 欧美自拍大量在线观看| 日韩一区二区三区在线播放| 日韩美女毛茸茸| 日韩专区在线播放| 久久艳片www.17c.com| 亚洲天堂一区二区三区| 欧美最猛性xxxxx亚洲精品| 国产美女久久久| 亚洲综合第一页| 欧美日韩亚洲视频| 国产在线精品播放| 国产福利精品在线| 国产精品亚洲片夜色在线| 九九久久精品一区| 北条麻妃99精品青青久久| 2020国产精品视频| 日本欧美一级片| 日本精品久久中文字幕佐佐木| 欧美高清一级大片| 国产成人精品免高潮在线观看| 欧美日韩免费一区| 久久久中精品2020中文| 亚洲人av在线影院| 国产xxx69麻豆国语对白| 国产精品va在线播放我和闺蜜| 亚洲激情小视频| 久久久久久久久电影| 久久久久久久国产精品| 国内免费久久久久久久久久久| 欧美多人爱爱视频网站| 日本19禁啪啪免费观看www|