gpt4 book ai didi

c++ - 创建一个二维数组,一维在编译时未知

转载 作者:行者123 更新时间:2023-11-28 07:37:31 29 4
gpt4 key购买 nike

有两件事我需要澄清:二维数组和长度在运行时确定的数组。第一个长度未知,第二个已知为二。

char** mapping = new char*[2];//2d array
mapping[2][0] = 'a';

由于正在写入未分配给数组的内存,此程序崩溃,我该如何解决?您能否解释一下您的答案。

最佳答案

如果只有第一个数组大小是运行时值(其余是编译时值),那么您可以一次性分配它。在您的情况下,对于运行时大小 n

char (*mapping)[2] = new char[n][2];

“照常”访问此数组,即作为 mapping[i][j],其中 i0..n-1 范围和 j0..1 范围内。

但是,除非您有一些特定的效率/布局要求,否则最好使用 std::vector

关于c++ - 创建一个二维数组,一维在编译时未知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16456286/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com