4Manuals

  • PDF Cloud HOME

使用C ++ Download

    获取Hough线的交点OpenCV C ++ 如何将字符串“ text1”设置为包含项目text1,text2,test3的组合框的选定项目? 为什么System.Net.Mail.MailAddress构造函数在域部分中解析带有斜杠“ /”的电子邮件? Android 10,API29:在应用程序文件夹中使用C ++库编写文件会使应用程序崩溃 如何删除外部索引并合并内部json Unity-LineRenderer没有出现在版本(2D)上 按下按钮后,电话中未显示通知 ASP.net,使用WebConfig httpErrors重定向到区域内的控制器不起作用 获取会议室详细信息 我们如何将参数Line转换为Station?

说我需要一个二维数组,在运行时设置第一维尺寸,在编译时将第二维尺寸设置为5。

因为我们可以执行此操作来初始化大小未知的一维数组

int* arr;
arr = new int[12];

我想使以下代码正常工作

int* arr[5];
arr = new int[12][5];

注意:

我需要将第二维设置为5,而不是第一维。因此,我需要能够执行arr[11][4]但不能执行arr[4][11]。

我知道我可以将arr设为int**,然后将2d数组分配给arr,因此请避免这样的答案。

我知道我可以使用vector等STL容器,因此请避免此类回答。

1 个答案:

答案 0 :(得分:3)

您可以写:

int (*arr)[5];

arr = new int[12][5];

然后,您可以访问诸如arr[11][4]之类的元素。但是不是您在问题中建议的arr[12][5],数组是零索引的,最大元素索引比维小1。

除最里面的尺寸外,所有尺寸都必须在编译时知道。如果5实际上是要表示运行时值,那么您不能使用C样式的数组来完成此任务。

NB。考虑使用unique_ptr进行安全的内存管理。该代码为auto arr = std::make_unique<int[][5]>(12);。



Similar searches
    Samsung RF263BEAESR Refrigerator User Manual 如何在Django中正确使用Slug网址? iOS面部识别持续学习 如何在可以设置顺序的一系列数据框的特定列上迭代函数? 如何恢复或重置Apple ID