字符串strcpy 动态创建和释放问题

int main() {
	char *str = NULL;
	str = (char*)malloc(5);
	strcpy(str, "1234");
// 	strcpy(str, "12345");//释放内存出错
// 	strcpy(str, "123456");//释放内存出错	
	puts(str);
	/*
	在给字符串分配内存时,要考虑到末尾的'\0'
	虽然能成功打印,但是释放空间时会出错
	*/

	if (str != NULL)
	{
		free(str);
		str = NULL;
	}
	system("pause");
	return 0;
}

猜你喜欢

转载自blog.csdn.net/itswrj/article/details/88749359