C++类,指针,构造函数,分段错误,2D数组



.h文件

public:
Class(int x, int y); //constructor for this question
private:
char (*1dArrayObjectPtr)[size] = nullptr;
char nameof2dArray[notImportantX][size];

初始化Class (*1dArrayObjectPtr)[size] = nullptr;然后通过分配有什么区别

cpp文件

Class::Class(int x, int y) : x(x), y(y) {1dArrayObjectPtr = nameOf2dArray;};

或:

Class::Class(int x, int y) : x(x), y(y), 1DArrayObjectPtr(nameof2dArray) {};

为什么当我访问时,顶部选项会导致分段错误,而底部选项不会:

*(*(1DArrayObjectPtr+i)+j)1DArrayObject[i][j]

如果我将1DArrayObjectPtr传递给一个新类,我是否能够迭代相同的?:

newClass::newClass(char* 1DArrayObjectPtr) : newClassPtr(1DArrayObjectPtr) {};

迭代为*(*(newClassPtr+i)+j)newClassPtr[i][j]

还是我将1指针从2D阵列更改为其他内容而没有意识到?

Scheff在语义上已经确认,没有区别。我将查看基类的构造函数,看看它们是否是罪魁祸首。谢谢谢夫。我试图将你的评论标记为解决方案,但我可能错误地标记了它……:D

最新更新