【发布时间】:2013-12-26 21:29:41
【问题描述】:
我是 C++ 新手。我尝试理解 C++ 中的内存管理以及使用指针。 我有一个关于动态数组的问题。
//This is the part of my code:
int *ptr;
ptr = new int[3];
ptr[0] = 1;
ptr[1] = 2;
ptr[2] = 3;
// Normally I would think I cannot add further elements to the array, but it is possible
ptr[3] = 4;
ptr[4] = 5;
ptr[5] = ...
所以,我的问题是,当我使用 size = 3 初始化 Array 的大小时,为什么我能够向数组添加更多元素?
一方面,我的数组可以“动态”增长是有道理的。另一方面,由于这条线,它没有任何意义:
ptr = new int[3];
【问题讨论】:
-
您正在调用未定义的行为。
-
回答你“为什么”的部分,C/C++ 不限制检查数组。他们相信让您以难以追踪的方式射击自己。享受吧!
标签: c++ arrays pointers dynamic size