黑马程序员技术交流社区

标题: 谁能仔细的给我讲一下malloc函数的原理啊 [打印本页]

作者: 空白_o6H66    时间: 2015-4-22 17:33
标题: 谁能仔细的给我讲一下malloc函数的原理啊
c语言中malloc函数运行原理,以及注意事项,希望论坛里的朋友 懂的讲一下,不懂的一起学习
作者: lvzhehappy    时间: 2015-4-22 17:56
malloc就是动态的开辟一段内存空间
例如 :
char *str= "hello world";
char *name = (char *)malloc(sizeof(str)+1);//给name开辟有12+1字节的内存空间,返回char *的地址给name,让name指向这段空间,以便运用
strcpy(name,str);//复制字符串

作者: 空白_o6H66    时间: 2015-4-22 18:03
lvzhehappy 发表于 2015-4-22 17:56
malloc就是动态的开辟一段内存空间
例如 :
char *str= "hello world";

“hello world”好像是11个吧,是11+1吗
作者: lvzhehappy    时间: 2015-4-22 22:35
空白_o6H66 发表于 2015-4-22 18:03
“hello world”好像是11个吧,是11+1吗

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

谢谢。。。。。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2