strcpy复制'\0'

版权声明:未经博主允许,禁止转载 https://blog.csdn.net/Think88666/article/details/84203866

今天发现了这样一个问题:

	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;

这是个比较严重的问题

猜你喜欢

转载自blog.csdn.net/Think88666/article/details/84203866