一个int数组内存初始化的讨论
来源:互联网 发布:卖掉淘宝店铺的危险 编辑:程序博客网 时间:2024/05/22 11:57
在C++ primer中,有很多关于new int[10]等语言的描述和例子。 如8.4.3中:
int * pia = new int[104];
pia是一个指向1024的int类型的数组的指针,而这个数组中,所有的数据都是没有被初始化过的。
然而,我的例子程序显示,整个数组时被初始化过的,莫非是编译器相关?
我的输出结果是:
ewuming@cnshc0032 []: g++ -o a.out array.cc
ewuming@cnshc0032 []: ./a.out
array value: 1074592164
array value: 1074588840
array value: -1073748456
array value: 134515377
array value: 1073834604
arr value: 0 arr address: 0x804a008
arr new value: 0 arr address: 0x804a008
arr value: 0 arr address: 0x804a010
arr new value: 0 arr address: 0x804a010
arr value: 0 arr address: 0x804a018
arr new value: 0 arr address: 0x804a018
arr value: 0 arr address: 0x804a020
arr new value: 0 arr address: 0x804a020
arr value: 0 arr address: 0x804a028
arr new value: 0 arr address: 0x804a028
arr value: 0 arr address: 0x804a030
arr new value: 0 arr address: 0x804a030
arr value: 0 arr address: 0x804a038
arr new value: 0 arr address: 0x804a038
arr value: 0 arr address: 0x804a040
arr new value: 0 arr address: 0x804a040
arr value: 0 arr address: 0x804a048
arr new value: 0 arr address: 0x804a048
arr value: 0 arr address: 0x804a050
arr new value: 0 arr address: 0x804a050
*** glibc detected *** free(): invalid pointer: 0x0804a030 ***
ewuming@cnshc0032 []: which g++
/usr/bin/g++
ewuming@cnshc0032 []: which g++
ewuming@cnshc0032 []: g++ -v
Reading specs from /usr/lib/gcc-lib/i586-suse-linux/3.3.3/specs
Configured with: ../configure --enable-threads=posix --prefix=/usr --with-local-prefix=/usr/local --infodir=/usr/share/info --mandir=/usr/share/man --enable-languages=c,c++,f77,objc,java,ada --disable-checking --libdir=/usr/lib --enable-libgcj --with-gxx-include-dir=/usr/include/g++ --with-slibdir=/lib --with-system-zlib --enable-shared --enable-__cxa_atexit i586-suse-linux
Thread model: posix
gcc version 3.3.3 (SuSE Linux)
在使用传统c语言的编程方法(int array[5];)中,这个是可以理解的,普通的数组都是没有被初始化过的。
在使用C++语言的编程方法(int* arr = new int[10];)中,我觉得应该是所有数据都是被初始化过的。
这样,为什么Lippman在书中专门如此提到呢?
纳闷中。。。。。
- 一个int数组内存初始化的讨论
- 二维数组内存的初始化
- 怎么定义一个int[n]数组且初始化
- J2ME支持的数组最大长度是多少?创建一个164025大的int型数组报内存溢出异常!
- int数组默认初始化值
- java int类型一维数组的初始化
- 将一个int的各个位解析到int数组
- java数组的初始化与内存分配
- 指针的内存解释,关于数组的讨论
- C++的int初始化
- 数组初始化问题:int a[3]={0}和int a[3]={1}的区别
- CSDN论坛中一个关于数组指针的讨论帖
- 初始化一个数组
- 用int数组初始化vector对象
- 初始化一个数组并输出数组的值(有前到后)
- java数组的定义初始化关于内存的理解
- Java键盘输入一个int数组
- 关于 (int&)a 的一些讨论
- SEO必备的54大技巧
- 大家好!
- 无题
- jquery 表单验证框架
- 弟子规
- 一个int数组内存初始化的讨论
- 各种烧写文件格式简介
- Rose破解
- C语言中strtok函数进行分割字符串!
- OSW(oracle os watcher)监控操作系统图形工具使用方法
- 线程
- c++错误代码
- [转]优化PHP代码的40条建议
- 写写今天用的tooltip(ext3.0)