C++ strcpy函数

函数功能把含有'\0'结束符的字符串复制到另一个地址空间。

函数声明:char *strcpy(char* dest, const char *src);

把以src为首地址NULL为结束符的数据复制到已dest开始的地址,但是,src与dest空间不能有重叠,且dest必须有足够的空间。

C++提供strcpy此类函数,为了对指针操作更加安全,避免内存泄露等异常状态的发生。

例如:

1 char *p=new char[10];
2 p="hello";
3 delete p[];//此步释放时将报错❌
 

在C++中,字符串常量"hello"被保存在常量存储区,而p="hello"操作是改变了指针的指向,使得指针p指向了常量存储区的"hello",造成了初始在堆上开辟的内存泄露,而delete无法释放常量存储区的内存,导致出错。

正确操作:

1 char *p=new char[10];
2 strcpy(p,"hello");
3 delete p[];//正确

使用strcpy函数把字符串常量"hello"赋值到p指向的空间中(初始化在堆上开辟空间)。

posted @   hik_老鬼  阅读(218)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示