如何为数组类型调用new运算符

发布于 2024-12-20 04:50:28 字数 321 浏览 1 评论 0原文

static int (*g_data)[3];

我想要 new Nint[3] 元素>。我只能按如下方式执行此操作:

g_data = (int(*)[3]) new int[N*3];

我知道这是可以的,并且使用 struct 将是一个替代解决方案。但是,出于好奇,我可以直接为 int[3] 调用 new 吗,即不进行类型转换?

static int (*g_data)[3];

I'd like to new N elements of int[3]. I'm only able to this as follows:

g_data = (int(*)[3]) new int[N*3];

I know that this is okay and using struct would be an alternative solution. But, just for curiosity, can I directly call new for int[3], i.e., without the type conversion?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

天荒地未老 2024-12-27 04:50:28

由于 g_data 是指向 3 int 的一维数组的指针,因此要创建一个由 N 个这样的 3 数组组成的数组,只需使用 int [N][3 ]:

g_data = new int[N][3];

Since g_data is a pointer to a 1D array of 3 int, to make an array of N such arrays of 3, you simply use int [N][3]:

g_data = new int[N][3];
信仰 2024-12-27 04:50:28

你可以这样做:

static int (*g_data)[3];
typedef int int_array[3];
g_data = new int_array[N];

You can do it this way:

static int (*g_data)[3];
typedef int int_array[3];
g_data = new int_array[N];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文