char* pc=(char*)malloc(10);
創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計制作、成都做網(wǎng)站與策劃設(shè)計,咸豐網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:咸豐等地區(qū)。咸豐做網(wǎng)站價格咨詢:13518219792
在內(nèi)存中申請10個char大小的存儲空間,并將存儲空間的首地址放于變量pc中。
記得不要忘記類型轉(zhuǎn)換。
在純粹C編譯器下,用new作函數(shù)名是可以的,但在與C++兼容的編譯器下,是不可能通過編譯的,因?yàn)閚ew是C++的申請內(nèi)存操作符,屬保留字,不能由用戶用作標(biāo)識符。這里將new改為mynew,舉例代碼如下:
//#include?"stdafx.h"http://If?the?vc++6.0,?with?this?line.
#include?"stdio.h"
#include?"string.h"
#include?"stdlib.h"
char?*mynew(int?n){
char?*p;
if(p=(char?*)malloc(n))
return?p;
else?return?NULL;
}
int?main(void){????
char?*p=mynew(20);//申請20個連續(xù)字節(jié)空間
if(p){//若申請成功
strcpy(p,"1234567890");//向申請的空間寫入字符串
printf("%s\n",p);//打出來看看
free(p);//釋放申請的空間
}
else?printf("Application?memory?failure...\n");
return?0;
}
在內(nèi)存上有三個區(qū)域可以用來保存數(shù)據(jù),一個是棧區(qū)、一個是堆區(qū)、一個是靜態(tài)區(qū),一般常用的定義變量是在棧區(qū)開辟,特點(diǎn)是系統(tǒng)開辟和釋放;堆區(qū)的空間是由使用者來開辟空間,所以需要借助malloc開辟空間,free釋放空間。p=(char *)malloc(sizeof(char)*20);malloc函數(shù)申請空間,sizeof(char) * 20表示malloc開辟空間字節(jié)數(shù)為20字節(jié),malloc前的char * 表示開辟空間進(jìn)行強(qiáng)制類型轉(zhuǎn)換為需要開辟的空間的數(shù)據(jù)類型。free(p)函數(shù)表示釋放由使用者開辟的空間,因?yàn)榭臻g開辟是手動調(diào)用函數(shù)開辟的空間,所以釋放空間也需要調(diào)用函數(shù)開辟。
#includestdio.h
#includestdlib.h
typedef struct Lnode
{
int data;
struct Lnode *next;
}Lnode,*LinkList;
LinkList Init()
{
LinkList L = NULL;
printf("%d ",L);
L=(LinkList)malloc(sizeof(Lnode));
printf("%d ",L);
L-next=0;
return L;
}
void main()
{
LinkList A = NULL;
printf("%d ",A);
A = Init();
}
新聞標(biāo)題:c語言開辟空間函數(shù) C語言申請空間
本文網(wǎng)址:http://aaarwkj.com/article30/doodopo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、服務(wù)器托管、網(wǎng)站維護(hù)、品牌網(wǎng)站制作、網(wǎng)站策劃、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)