A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

c语言中malloc函数运行原理,以及注意事项,希望论坛里的朋友 懂的讲一下,不懂的一起学习

4 个回复

倒序浏览
malloc就是动态的开辟一段内存空间
例如 :
char *str= "hello world";
char *name = (char *)malloc(sizeof(str)+1);//给name开辟有12+1字节的内存空间,返回char *的地址给name,让name指向这段空间,以便运用
strcpy(name,str);//复制字符串
回复 使用道具 举报
lvzhehappy 发表于 2015-4-22 17:56
malloc就是动态的开辟一段内存空间
例如 :
char *str= "hello world";

“hello world”好像是11个吧,是11+1吗
回复 使用道具 举报
空白_o6H66 发表于 2015-4-22 18:03
“hello world”好像是11个吧,是11+1吗

你有一个误区,字符串都有一个隐藏的'\0'的结尾标识,所以是12字节,而strlen算的是字符串的有效长度是11,而我12+1,是因为我后面用了strcpy复制语句,name的内存空间比str大才能复制过去,不然会发生内存故障
回复 使用道具 举报
lvzhehappy 发表于 2015-4-22 22:35
你有一个误区,字符串都有一个隐藏的'\0'的结尾标识,所以是12字节,而strlen算的是字符串的有效长度是11 ...

谢谢。。。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马