1гҖҒmalloc()еҮҪж•°зҡ„еӨҙж–Ү件жҳҜstdlib.hпјҢе…¶еҮҪж•°еЈ°жҳҺеҰӮдёӢпјҡ
void* malloc(size_t size);
е…¶дёӯеҸӮж•°size_t sizeиЎЁзӨәеҠЁжҖҒеҶ…еӯҳеҲҶй…Қз©әй—ҙзҡ„еӨ§е°ҸпјҢд»Ҙеӯ—иҠӮдёәеҚ•дҪҚгҖӮ
size_t жҳҜtypedefйҮҚе®ҡд№үзҡ„зұ»еһӢпјҢйҮҚе®ҡд№үиҝҷж ·ж•°жҚ®зұ»еһӢзҡ„дҪңз”Ёе°ұжҳҜи®©дҪҝз”ЁиҖ…дёҖзӣ®дәҶ然пјҢжҢҮзӨәдҪҝз”ЁиҖ…иҝҷдёӘеҸӮж•°иЎЁзӨәдёҖдёӘй•ҝеәҰпјҢеңЁ sizeеҗҺеҠ дёҠtпјҢиЎЁзӨәжҳҜж•ҙеһӢзӣёе…іж•°жҚ®зұ»еһӢзҡ„пјҢд»ҘеҗҺзңӢеҲ°xxx_tзҡ„зұ»еһӢпјҢйҖҡеёёйғҪжҳҜж•ҙеһӢзӣёе…іж•°жҚ®зұ»еһӢйҮҚе®ҡд№үгҖӮ
еңЁиҝҷйҮҢmalloc()еҮҪж•°зҡ„иҝ”еӣһеҖјжҳҜдёҖдёӘжҢҮй’ҲпјҢжҲ–иҖ…иҜҙжҳҜеҲҶй…ҚеҗҺеҶ…еӯҳз©әй—ҙзҡ„йҰ–ең°еқҖ
еҰӮжһңmalloc()еҮҪж•°з”іиҜ·з©әй—ҙжҲҗеҠҹеҲҷиҝ”еӣһдёҖж®өеҶ…еӯҳз©әй—ҙзҡ„йҰ–ең°еқҖпјҢеӨұиҙҘеҲҷиҝ”еӣһNULL
2гҖҒ
1 int *p;
2 p = malloc(sizeof(int));
еңЁиҝҷйҮҢжҳҜдёҚиғҪиҝҷж ·еҶҷзҡ„пјҢдјҡеҮәзҺ°й”ҷиҜҜпјҡд»Һзұ»еһӢ 'void*' еҲ°зұ»еһӢвҖҳintвҖҷзҡ„иҪ¬жҚўж— ж•ҲпјҢеә”иҜҘж”№дёә:
p =(int *) malloc(sizeof(int));
3гҖҒеңЁдҪҝз”Ёmalloc()еҮҪж•°з”іиҜ·зҡ„з©әй—ҙд№ӢеүҚпјҢжңҖеҘҪз”Ёmemset()еҮҪж•°жҠҠиҝҷж®өеҶ…еӯҳз©әй—ҙжё…зҗҶдёҖдёӢпјҢеӣ дёәз”Ёmalloc()еҮҪж•°з”іиҜ·зҡ„з©әй—ҙд»…д»…дҝқиҜҒзҡ„жҳҜеҶ…еӯҳз©әй—ҙзҡ„еӨ§е°ҸпјҢ并дёҚдҝқиҜҒеҶ…еӯҳз©әй—ҙжҳҜеҗҰжңүж•°жҚ®еһғеңҫгҖӮ
4гҖҒеҪ“дёҚеңЁдҪҝз”Ёmalloc()еҮҪж•°з”іиҜ·зҡ„з©әй—ҙд№ӢеҗҺпјҢеә”иҜҘдҪҝз”ЁеҰӮдёӢеҮҪж•°йҮҠж”ҫжҺүиҝҷдёӘеҶ…еӯҳз©әй—ҙпјҡ
void free(void *ptr);
е…¶дёӯvoid *ptrжҳҜmalloc()еҮҪж•°зҡ„иҝ”еӣһеҖјпјҢд№ҹе°ұжҳҜеҶ…еӯҳз©әй—ҙзҡ„йҰ–ең°еқҖ
еҰӮжһңеҸӘзҹҘйҒ“дҪҝз”ЁпјҢиҖҢдёҚзҹҘйҒ“йҮҠж”ҫпјҢеҲҷеңЁ7еӨ©*24е°Ҹж—¶иҝҗиЎҢзҡ„еөҢе…ҘејҸдә§е“ҒдёӯпјҢеҫҲе®№жҳ“дјҡеҮәзҺ°еҶ…еӯҳжі„жјҸпјҢжңҖз»ҲеҜјиҮҙзі»з»ҹзҳ«з—Ә
5гҖҒmalloc()еҮҪж•°еҠЁжҖҒеҲҶй…Қз©әй—ҙзј–зЁӢпјҡ
1 /***************************************
2 malloc()еҮҪж•°еҠЁжҖҒеҲҶй…Қз©әй—ҙзј–зЁӢпјҡ
3 (1)е®ҡд№үдёҖдёӘchar*еһӢжҢҮй’ҲеҸҳйҮҸp
4 (2)дёәpеҲҶй…Қ10дёӘеӯ—иҠӮзҡ„еҶ…еӯҳз©әй—ҙ
5 (3)еӨҚеҲ¶"come on" еӯ—з¬ҰдёІеҲ°pжҢҮеҗ‘зҡ„еҶ…еӯҳз©әй—ҙ
6 (4)е°ҶpжҢҮй’ҲжҢҮеҗ‘зҡ„еҶ…еӯҳз©әй—ҙеҶҚжү©еӨ§20дёӘеӯ—иҠӮ
7 (5)е°Ҷ",baby!"еӯ—з¬ҰеӨҚеҲ¶еңЁpжҢҮеҗ‘з©әй—ҙеӯ—з¬ҰдёІзҡ„еҗҺйқў
8 (6)йҮҠж”ҫpжҢҮеҗ‘зҡ„з©әй—ҙ
9 ****************************************/
10 #include <iostream>
11 #include <cstdlib>
12 #include <cstring>
13 using namespace std;
14
15 int main()
16 {
17 гҖҖгҖҖchar *p;
18 гҖҖгҖҖp = (char *)malloc(10*sizeof(char));
19
20 гҖҖгҖҖmemset(p,0,10*sizeof(char));
21
22 гҖҖгҖҖstrcpy(p,"come on");
23 гҖҖгҖҖcout << "p: " << p << endl;
24
25 гҖҖгҖҖp =(char *)realloc(p,20*sizeof(char));
26 гҖҖгҖҖcout << "p: " << sizeof(p) << endl;
27
28 гҖҖгҖҖstrcat(p,",baby!");
29 гҖҖгҖҖcout << "p: " << p << endl;
30
31 гҖҖгҖҖfree(p);
32 return 0;
33 }
иҫ“еҮәпјҡ
1 p: come on
2 p: 4
3 p: come on,baby!
原文链接: https://www.cnblogs.com/ybqjymy/p/12365716.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/193618
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!