首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

数组与指针的区别

2012-03-28 
求救数组与指针的区别char* Cat_String(char *dest,char *source){char *p new char[1]char *ss p//

求救数组与指针的区别
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的博客,里面解释得很详细了。

热点排行