strcpy
今天发现了这样一个问题:
char *arr = new char[10];
strcpy(arr, "wangzhaaaa");
delete []arr;
执行这段代码将会报错,因为strcpy复制char*时会复制'\0',所有在new 字符数组的时候应该预留'\0'的空间,否则到时候delete的时候会报错!代码改成这样即可
char *arr = new char[11];
strcpy(arr, "wangzhaaaa");
delete []arr;
这是个比较严重的问题
文章最后发布于: 2018-11-18 20:02:51
相关阅读
首先说下strcpy strcpy()是依据源串的\0作为结束判断的,不检查copy先的Buffer的Size,如果目标空间不够,就有BufferOverflow问题。s
strcpy()函数是C语言中的一个复制字符串的库函数,以下将详细解释说明一下: · 函数声明以及实现代码 char *strcpy(char *dst, co
C4996:'strcpy': This function or variable may be
使用C语言中字符串的处理函数提示错误 *需包含头文件"string.h" #include "string.h" 以strcpy函数为例 原型:strcpy(str1, str2
//strcpy函数的使用 #include<iostream> using namespace std; int main(){ char a[7] = "abcdef"; //不能写成char a[6] = "ab
1 strcpy原型声明:extern char *strcpy(char* dest, const char *src);头文件:#include <string.h>功能:把从src地址开始且含有NULL