女孩和一切之间,首先,我想说对不起的努布/重复的问题。
我想为一个2d字符数组分配内存,但是只有当程序调用alloc()时,我才能这样做。任何帮助都是非常感谢的。
既然你们都喜欢代码,下面就是我所拥有的:
#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或重复的问题道歉,但是我确实尝试了从文本那里得到的答案,唉,没有结果。
发布于 2020-10-12 15:33:57
*(add)[i]看起来不太正确,它对add变量进行索引,然后取消指针的引用。这些括号没有效果。
尝试相反的顺序,即(*add)[i]
https://stackoverflow.com/questions/64320707
复制相似问题