我认为在 cpp 中执行动态分配时括号“[]”和“()”是相同的,但此代码打印错误。本来,5 大小的数组应该包含索引 0 到 4,不是吗?我的代码有问题吗?我在cppreference.com上搜索过,没有找到。
#include <iostream>
using namespace std;
int main(void){
int* p1 = new int[5];
int* p2 = new int(5);
p1[4] = 1;
cout << p1[4]; // no error
p2[4] = 1;
cout << p2[4]; // error
}
Run Code Online (Sandbox Code Playgroud)
new int[5]构造一个int包含 5 个元素的数组,同时new int(5)构造一个int值为 5 的单个数组。
参考: https: //en.cppreference.com/w/cpp/language/new
| 归档时间: |
|
| 查看次数: |
82 次 |
| 最近记录: |