c++ - 我真的可以用圆括号初始化数组吗?

标签 c++ constructor new-operator

偶尔,我在我的程序代码的一处打错了字:

int a = 10;  
char* b = new char(a);

错误很明显:我写的是 () 而不是 []。奇怪的是......代码编译正常,它在调试器中运行正常。但是在执行带有这些行的函数后,在调试器外部编译的 .exe 崩溃了片刻。

第二行代码真的合法吗?如果是,这对编译器意味着什么?

最佳答案

这是一个数值为 a 的单个字符,在本例中为 10。您知道,指针不仅仅指向数组。

关于c++ - 我真的可以用圆括号初始化数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8098922/

相关文章:

C++无法在构造函数中使用模板化参数转换类

c++ - 新的运算符分配函数顺序连续性和初始值

c++ - 调用 operator new 没有匹配的函数

c++ - 试图找到数字的平方根,但代码不起作用。 C++

c++如何获得构造函数的数量?

c++ - std::vector<type> 的类型要求

c++ - 引发 QT QEvent::WindowActivate 事件

c++ 指向非静态成员函数的指针

c++ - 删除对象

php - 使用 'new' 实例化时到底发生了什么?