关于C++的问题strcpy大家帮忙

来源:百度知道 编辑:UC知道 时间:2024/06/22 15:13:51
char * STRCPY( char * str1 , char * str2 )
{
for( int i = 0 ; i < STRLEN( str2 ) ; i++ )
{
str1[i] = str2[i];
}
str1[i] = '\0';
return str1;
}
void main()
{
char * name1 = "abcdefg";
char * name2 = "haha";
STRCPY( name1 , name2 );
}
这段代码有什么问题?编译通过,但执行后却报内存溢出的错误,请高手详细解答一下感激不尽~~,如果我把name1 name2和相对应的形参都改成数组就可以,我认为和分配空间有关,不知道对不对,希望能得到一个满意的答案!

char * name1 = "abcdefg";
这样定义的串是存储在静态区的,不可以修改

可以参考:
关于静态存储区域、栈、堆
http://hi.baidu.com/pur_e/blog/item/4b23f17fc9ef30320cd7dacf.html

有问题hi我