char* pc=(char*)malloc(10);
創新互聯是一家專注于網站設計制作、成都做網站與策劃設計,咸豐網站建設哪家好?創新互聯做網站,專注于網站建設十余年,網設計領域的專業建站公司;建站業務涵蓋:咸豐等地區。咸豐做網站價格咨詢:13518219792
在內存中申請10個char大小的存儲空間,并將存儲空間的首地址放于變量pc中。
記得不要忘記類型轉換。
在純粹C編譯器下,用new作函數名是可以的,但在與C++兼容的編譯器下,是不可能通過編譯的,因為new是C++的申請內存操作符,屬保留字,不能由用戶用作標識符。這里將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個連續字節空間
if(p){//若申請成功
strcpy(p,"1234567890");//向申請的空間寫入字符串
printf("%s\n",p);//打出來看看
free(p);//釋放申請的空間
}
else?printf("Application?memory?failure...\n");
return?0;
}
在內存上有三個區域可以用來保存數據,一個是棧區、一個是堆區、一個是靜態區,一般常用的定義變量是在棧區開辟,特點是系統開辟和釋放;堆區的空間是由使用者來開辟空間,所以需要借助malloc開辟空間,free釋放空間。p=(char *)malloc(sizeof(char)*20);malloc函數申請空間,sizeof(char) * 20表示malloc開辟空間字節數為20字節,malloc前的char * 表示開辟空間進行強制類型轉換為需要開辟的空間的數據類型。free(p)函數表示釋放由使用者開辟的空間,因為空間開辟是手動調用函數開辟的空間,所以釋放空間也需要調用函數開辟。
#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();
}
新聞標題:c語言開辟空間函數 C語言申請空間
本文網址:http://vcdvsql.cn/article30/doodopo.html
成都網站建設公司_創新互聯,為您提供做網站、服務器托管、網站維護、品牌網站制作、網站策劃、域名注冊
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯