我有这个,在我的标题中:
struct Surface {
char *objectName;
int xPos;
int yPos;
SDL_Surface *surface;
};
struct WorldSurface {
Surface *surface = new Surface[MAX_SURFACES];
int counter = 0;
int current = 0;
};
WorldSurface *worldSurface;
然后我在 .cpp 中初始化 worldSurface:
WorldSurface *worldSurface = new WorldSurface[MAX_LEVELS];
而这个函数,无论如何我都无法开始工作,尝试过使用= NULL,指针,->而不是.'s ...(请记住,我对指针主题不太了解)
void drawClass::addSurface(char* objectName, char* surfaceFile, int xPos, int yPos, int drawLevel) {
int cnt = worldSurface[drawLevel].counter;
worldSurface[drawLevel].surface[cnt].objectName = objectName;
worldSurface[drawLevel].surface[cnt].surface = load_image(surfaceFile);
worldSurface[drawLevel].surface[cnt].xPos = xPos;
worldSurface[drawLevel].surface[cnt].yPos = yPos;
worldSurface[drawLevel].counter++;
}
它有 10 个 worldSurface,每个包含 50 个表面结构,我想访问位于 worldSurface[drawLevel] 内部的结构,并且我想访问的表面结构在 worldSurface 中的 .counter 变量中是已知的。但是所有对底层表面结构的访问都因分段错误而失败,我不知道为什么......
谢谢您的帮助!