首页 > 其他 > 详细

字符指针与字符串

时间:2018-07-05 00:29:32      阅读:171      评论:0      收藏:0      [点我收藏+]
void getmemory(char p)
{
p=(char
) malloc(100);
strcpy(p,“hello world”);
}
int main( )
{
char *str=NULL;
getmemory(str);
printf(“%s/n”,str);
free(str);
return 0;
}会出现什么问题?
【标准答案】程序崩溃,getmemory中的malloc 不能返回动态内存, free()对str操作很危险。

参考网上的代码:
void getmemory(char *p)
{
p=(char ) malloc(100);
strcpy(
p,“hello world”);
}
int main( )
{
char str=NULL;
getmemory(&str);
printf(“%s/n”,str);
free(str);
return 0;
}
个人注解:
char
str=NULL;相当于定义一个字符串str,也是字符指针str。
getmemory(&str);传的是字符串地址。
char *p可看成是 (char )p意为字符串str的指针p。
p为字符串str。亦是单字符的指针str。

字符指针与字符串

原文:http://blog.51cto.com/wuweizhu/2136351

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!