首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C++在函数中分配动态2d数组

C++在函数中分配动态2d数组
EN

Stack Overflow用户
提问于 2020-10-12 15:23:54
回答 1查看 47关注 0票数 0

女孩和一切之间,首先,我想说对不起的努布/重复的问题。

我想为一个2d字符数组分配内存,但是只有当程序调用alloc()时,我才能这样做。任何帮助都是非常感谢的。

既然你们都喜欢代码,下面就是我所拥有的:

代码语言:javascript
复制
#include <iostream>

using namespace std;
#define LOG(x) cout<<endl<<x<<endl

void alloc(char ***add){

    cout<<"Size: ";int s;cin>>s;
        *add = new char *[s];
        for (int i = 0; i < s; i++) {
            *(add)[i] = new char[s];
            cout<<add[i][i]<<" ; ";
        }
}

int main() {
    char **c;

    alloc(&c);
    for (int i =0;i<2;i++) {
        for (int j = 0; j < 2; j++) {
            cout<<c[i][j];
        }
        cout<<endl;
    }
    
cin.get();
}

现在,每当我运行这段代码时,我都会得到以下错误:进程完成了退出代码139 (被信号11: SIGSEGV中断)

此外,在调试器中,当函数被调用并输入数组的大小时,我得到一个未声明标识符‘c’错误的

谢谢您,我再次为noob或重复的问题道歉,但是我确实尝试了从文本那里得到的答案,唉,没有结果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-12 15:33:57

*(add)[i]看起来不太正确,它对add变量进行索引,然后取消指针的引用。这些括号没有效果。

尝试相反的顺序,即(*add)[i]

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

https://stackoverflow.com/questions/64320707

复制
相关文章

相似问题

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