C++ primer 总结(sizeof,delete,new)
2010-08-26 17:24
253 查看
size_t是一种与机器相关的typedef定义;
// ia = sizeof int; // 错误
ia = sizeof( int ); // ok
int *pi = new int[ 12 ];
cout << "pi: " << sizeof( pi )
<< " *pi: " << sizeof( *pi )
<< endl; 运行结果是pi:4 *pi:4,第一个因为是指针大小,所以是4,第二个我就有点不解,第二个是什么意思呢?
一个string 的大小与它所指的字符串的长度无关。比如 以下代码的输出都是16。 string st1( "foobar" );
string st2( "a mighty oak" );
string *ps = &st1;
cout << "st1: " << sizeof( st1 )
<< " st2: " << sizeof( st2 )
<< " *ps: " << sizeof( *ps )
<< endl;
sizeof 操作符在编译时刻计算,因此被看作是常量表达式。
new 表达式返回指向新分配的对象的指针.
int *pi = new int( 1024 );(delete pi;)
它不但分配了这个对象而且用1024 将其初始化.
int *pia = new int[ 10 ];(对应于delete []pia;)
它从空闲存储区中分配了一个数组其中含有10 个int 型对象,并用它的地址初始化pia,而数组的元素没有被初始化.
delete 表达式应用在指向我们用new 表达式分配的对象指针上来做到这一点delete 表达式不应该被应用在不是通过new 表达式分配的指针上.
// ia = sizeof int; // 错误
ia = sizeof( int ); // ok
int *pi = new int[ 12 ];
cout << "pi: " << sizeof( pi )
<< " *pi: " << sizeof( *pi )
<< endl; 运行结果是pi:4 *pi:4,第一个因为是指针大小,所以是4,第二个我就有点不解,第二个是什么意思呢?
一个string 的大小与它所指的字符串的长度无关。比如 以下代码的输出都是16。 string st1( "foobar" );
string st2( "a mighty oak" );
string *ps = &st1;
cout << "st1: " << sizeof( st1 )
<< " st2: " << sizeof( st2 )
<< " *ps: " << sizeof( *ps )
<< endl;
sizeof 操作符在编译时刻计算,因此被看作是常量表达式。
new 表达式返回指向新分配的对象的指针.
int *pi = new int( 1024 );(delete pi;)
它不但分配了这个对象而且用1024 将其初始化.
int *pia = new int[ 10 ];(对应于delete []pia;)
它从空闲存储区中分配了一个数组其中含有10 个int 型对象,并用它的地址初始化pia,而数组的元素没有被初始化.
delete 表达式应用在指向我们用new 表达式分配的对象指针上来做到这一点delete 表达式不应该被应用在不是通过new 表达式分配的指针上.
相关文章推荐
- 关键字的简单总结:static、const、sizeof以及malloc和new、delete和free
- new和delete必须成对出现吗?【网上集合贴+个人总结】
- C++中的new与delete总结
- C++ — new和delete的总结
- 【C++总结】C++的new和delete
- 《C++ Primer》笔记-创建动态数组new,delete
- new和delete学习总结
- 深入C++ new/delete,malloc/free 总结
- new,delete总结
- C++中的new和delete——读书笔记总结
- [C++ 学习] C++ Primer 习题 5.30 new & delete 操作符
- new/delete和malloc/free的区别,sizeof的理解和struct内存对齐
- c/c++笔试题——C++中 new/delete 概念和用法总结
- 关于new,delete,malloc,free的一些总结
- C++复习要点总结之四New和delete使用
- C++中 new/delete 概念和用法总结
- 细嚼慢咽C++primer(2)——表达式,sizeof,new,delete,类型转换
- malloc/free与new/delete的小总结
- new 与 delete的应用 sizeof与strlen的区别
- 细嚼慢咽C++primer(2)——表达式,sizeof,new,delete,类型转换