专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C语言

数组与指针的区别

发布时间:2011-06-28 16:16:07 文章来源:www.iduyao.cn 采编人员:星星草
求救数组与指针的区别
char* Cat_String(char *dest,char *source)
{
char *p = new char[1];
char *ss = p;
//char ss[100];
  //char *p = ss;
  while(*dest)
{
*p++ = *dest++;
}
while(*source)
{
*p++ = *source++;
}
*p = '\0';
p = ss;
return p;
}

int main()
{
char *str1 = (char *)malloc(10);
sprintf_s(str1,5,"aabb");
char *str2 = "bb";
char *buf = Cat_String(str1,str2);
printf("%s\r\n",buf);
  free(str1);
  return 0;
}
在Cat_String()里面如果将前2行换成注释的代码,运行结果就不对了。求解

------解决方案--------------------
char *p = new char[1];是在堆上申请空间 不随函数结束而释放

char ss[100]; 栈上申请的空间,函数结束后就释放了
------解决方案--------------------
空间释放不同
------解决方案--------------------
http://blog.csdn.net/supermegaboy/article/details/4855027
------解决方案--------------------
建议你看看本坛supermegaboy的博客,里面解释得很详细了。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: