- 论坛徽章:
- 0
|
原帖由 namtso 于 2006-10-10 14:02 发表
char *newstring=new char(strlen(testlen));
是不是应该用
char * newstring = new char[strlen[testlen)+1]; ?
谢谢指正.看代码不仔细.经过测试,发现错误的代码其实在各种平台下都可以编译通过,也可以运行正常(即使如LZ所说,不+1).
看来以后编译的时候一定要把警告级别提高
虽然能够编译通过,其实编译器还是可以提供很多信息的
------ 已启动全部重新生成: 项目: cccc, 配置: Debug Win32 ------
正在删除项目“cccc”(配置“Debug|Win32”)的中间文件和输出文件。
正在编译...
stdafx.cpp
正在编译...
cccc.cpp
d:\Development\cccc\cccc.cpp(16) : warning C4267: “参数” : 从“size_t”转换到“unsigned int”,可能丢失数据
d:\Development\cccc\cccc.cpp(1 : warning C4267: “初始化” : 从“size_t”转换到“char”,可能丢失数据
正在链接...
生成日志保存在“file://d:\Development\cccc\Debug\BuildLog.htm”中
cccc - 0 错误,2 警告
---------------------- 完成 ---------------------
全部重新生成: 1 已成功, 0 已失败, 0 已跳过 |
|