关于new的一个问题
来源:互联网 发布:逆袭网络剧完整版 编辑:程序博客网 时间:2024/06/05 18:10
关于new的一个问题
1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5 char* a= new char;
6 a = "tomatoes";
7 cout<<a<<endl;
8 }
结果是什么? 请思考后才看下面。
tomatoes
tomatoes
知道为什么吗?因为a只是个指针而以,它可以指向一个字符,也可以指向一个字符串。在第5行的时候,a指向的是一个一字节的char,但是在第6行的时候,a已经指向"tomatoes"了。因为字符串常量的实质也是指针,比如"tomatoes"是一个指向首字母"t"的字符指针,并且字符串常量最后以结尾符'\0'结尾,就是字符串的指针赋值给a。所以输出的时候,就是"tomatoes"了。所以这个例子是一个典型的资源泄露的例子。因为new char了,却没有使用,并由于a在之后已经不指向这个字符的空间,使之以后都没有机会再被释放掉了,所以这1bit空间就资源泄露了。
如果你实验,会发现cout<<*a;就是t。cout<<a就是 tomatoes 。
一些想法,不确定100%正确。
- 关于new的一个问题
- 关于new 与 malloc的一个问题
- 关于new VaribleInfo[]{}的问题
- Java关于new的问题
- 一个new失败问题的查找过程
- 一个new失败问题的查找过程
- 一个new失败问题的查找过程
- new一个数组引起的问题
- 一个new失败问题的查找过程
- 关于IList无法new的问题
- 关于new Date 的时区问题
- 关于new创建对象的弱智问题
- C++关于new动态分配内存的问题
- 关于动态new二维数组的问题
- 关于子函数中用new的问题
- 关于c++中new / delete 一个不可饶恕的错误
- java关于new出一个对象的例子
- 关于Android的new新建project时出现的问题
- 角点检测
- i2c总线时序
- 窗体(1):最简洁形式
- andorid源码编译
- java.lang.OutOfMemoryError: PermGen space解決
- 关于new的一个问题
- DataGridView查询数据
- 普利姆算法
- Web内部控件DropDownList
- HDU 1004 Let the Balloon Rise
- glTexCoord2f
- 为outlook增加“邮件召回”功能
- 大学该怎么读?
- C#中 如何执行带GO的sql 语句