关于如何将const char* 变量通过strcpy赋值给未初始化的char*变量
首先,未初始化的char*变量只是一个char指针
而strcpy(char* p, const char* s)是将两个指针解引用。然后进行拷贝。
如果直接通过strcpy函数来将s赋值给未初始化的p。就会造成内存溢出。因为 p它指向一个未知的地址。解引用出来也不知道空间多大,是什么鬼东西。
所以如果要使用stcpy的话 就需要先动态分配空间给p
p = new char[sizeof(s)/sizeof(f[0])];
strcpy(p, s);
这样就没问题了。 空间分配好了 就不怕了
最后记得delete p;
本文详细介绍了如何避免在使用strcpy函数时发生内存溢出的问题。当目标指针未初始化时,直接使用strcpy可能导致不可预知的后果。正确的做法是在使用前为char*变量动态分配足够的内存空间。
8415

被折叠的 条评论
为什么被折叠?



