首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为多维字符串动态分配内存

为多维字符串动态分配内存
EN

Stack Overflow用户
提问于 2013-11-23 03:54:16
回答 2查看 75关注 0票数 0

如何为二维字符串动态分配内存,如下所示。

代码语言:javascript
运行
复制
struct sample {
    int i;
    std::string arrray [10][10];
};

如何为下面的内存动态分配内存?

代码语言:javascript
运行
复制
struct sample {
    int i;
    std::string **arrray;
};
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-23 03:57:24

第一个不需要内存分配(当您在structs中声明C样式数组时,编译将在struct中为它们分配空间)。

第二个是相当标准的2D数组。

代码语言:javascript
运行
复制
arrray = new string*[10];
for (int i = 0; i < 10; i++)  
    arrray[i] = new string [10];  
票数 1
EN

Stack Overflow用户

发布于 2013-11-23 04:57:15

步骤1:使用std::向量来保存字符串指针;

步骤2:使用您自己定义的类(向量容器)封装向量;

第三步:覆盖2维operator[],映射2D下标到std::矢量大小;

第四步:现在的问题是,如何操作2D下标?您可以定义另一个“朋友类”,向量容器的[]返回一个朋友类,朋友类也有一个[],它返回std::vector中的值。

不要忘记更改大小的成员函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20158325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档