除了new[]POD类型没有对数组进行零初始化以及strcat将终止写入'\0'已分配区域末尾的事实之外,一切看起来都很好:特别是,delete将删除整个块.
写入已分配块结束的原因是10个字符的字符串"qwertyuiop"需要11个字节来存储.
如果你想写strcpy而不是strcat,那么这是安全和正确的.但似乎你对此有一种误解delete [] charArray.它不会删除字符,它会删除指向的内存charArray.即使之后内存delete [] charArray 可能包含这些字符,但不能保证.
但是,如果你真的想写strcat,并且它不是拼写错误,那么你的代码会调用未定义的行为,因为charArray包含strcat将尝试连接第二个字符串的垃圾.
| 归档时间: |
|
| 查看次数: |
1318 次 |
| 最近记录: |