0

.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]

还是我将 1dpointer 从 2D 数组更改为其他东西而没有意识到?

4

1 回答 1

0

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

于 2021-04-16T16:16:32.963 回答