#include#include#includeint main() {int size;//size 代表我們要申請(qǐng)多大字節(jié)的空間
char *p;//void*類型的指針不能偏移的,因此不會(huì)定義無(wú)類型的指針
scanf("%d",&size);//輸入要申請(qǐng)的空間大小
//malloc返回的void*代表無(wú)類型的指針
p=(char*)malloc(size);
strcpy(p,"malloc success");
puts(p);
free(p);//釋放申請(qǐng)的空間時(shí),給的地址必須是最初的malloc返回給我們的地址
return 0;
}
char* print_stack(){char c[100]="I am print_stack func";
char *p;
p=c;
puts(p);
return p;
}
int main() {char *p;
p=print_stack(); // 該函數(shù)執(zhí)行完之后??臻g會(huì)釋放,釋放的空間給后者使用 導(dǎo)致亂碼
puts(p);
// p=print_malloc();
puts(p); // p接受的是數(shù)組的起始地址
free(p);//只有free時(shí),堆空間倉(cāng)會(huì)釋放
return 0;
}
結(jié)果
I am print_stack func
I am print_stack??
#include#include#includechar* print_stack(){char c[100]="I am print_stack func";
char *p;
p=c;
puts(p);
return p;
}
char *print_malloc(){char *p=(char*) malloc(100); //堆空間在整個(gè)進(jìn)程中一直有效,不因?yàn)楹瘮?shù)結(jié)束而消亡
strcpy(p,"I am print malloc func");
puts(p);
return p;
}
int main() {char *p;
p=print_stack();
puts(p);
p=print_malloc();
puts(p);
free(p);//只有free時(shí),堆空間倉(cāng)會(huì)釋放
return 0;
}
I am print_stack func
I am print_stack??
I am print malloc func
I am print malloc func
創(chuàng)新互聯(lián)公司主營(yíng)臨淄網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都app軟件開(kāi)發(fā)公司,臨淄h5微信小程序定制開(kāi)發(fā)搭建,臨淄網(wǎng)站營(yíng)銷推廣歡迎臨淄等地區(qū)企業(yè)咨詢你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧