假设我们创建了动态分配的内存,例如:
或者我应该怎么做:
int SIZE = 10;
int *p = new int[SIZE];
for(int i = 0; i < SIZE; ++i)
p[i] = i;
这段代码会将数字0到9赋值给指针数组。
然后我想在数组中加入10、11、12。
我可以这样做吗:
p[10] = 10;
p[11] = 11;
p[12] = 12;
或者我应该怎么做:
delete[] p;
size = 13;
p = new int[SIZE];
for(int i = 0; i < SIZE; ++i)
p[i] = i;
C++
,为什么不直接使用vector<int>
呢? - Tanveer Badarmalloc()
、calloc()
或realloc()
分配时才能这样做。但是在C++中,由于各种原因,不建议使用这些函数,特别是如果用于为具有非平凡构造函数或析构函数的C ++类类型分配内存时,则会导致未定义行为。 - Peter