c++ - 为什么我不能用 c = new (char*)[10] 初始化 char** c,而 c = new char*[10] 可以?

标签 c++ pointers

为什么我不能初始化char** c:

 c = new (char*)[10];

, 同时:

 c = new char*[10];

还好吗?

最佳答案

这有点奇怪。 new-statement有两种格式,要么

new (optional_parameters) ( type ) optional_initializer

new (optional_parameters) type optional_initializer

您对 new (char*)[10] 的尝试不符合第一种形式,即使 (char*) 看起来像 (type),因为 [10] 不是有效的初始化程序。

您的其他尝试确实符合第二种形式,typechar*[10] 并且缺少两个可选部分。

关于c++ - 为什么我不能用 c = new (char*)[10] 初始化 char** c,而 c = new char*[10] 可以?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32880091/

相关文章:

c++ - 在Qt中将数据保存到文件

c++ - 如何在具有不同命名空间的派生 C++ 类中初始化模板静态成员

javascript - 获取 youtube 视频的签名

c++ - 2 C++中的维数组指针操作

C++ 链接错误(Boost 线程)

c++ - C/C++ 中的循环依赖结构

c - 有关于 C 结构顺序的任何保证吗?

c - malloc 中的指针到指针段错误

c - 函数my_find_node返回第一个节点出现的地址

c - 在链表中插入节点