두 개의 구조체를 정의했으며 값을 설정하기 위해 반복 할 때 printf가 반환 할 때 두 번만 반복됩니다. 어떤 아이디어?
typedef struct {
int x;
int y;
unsigned char status;
} Cell;
typedef struct {
int sizeX;
int sizeY;
Cell cell[];
} World;
int main() {
int i, x, y;
i = 0;
World grid;
grid.sizeX = 10;
grid.sizeY = 10;
for (x = 0; x < grid.sizeX; x++) {
for (y = 0; y < grid.sizeY; y++) {
Cell cell;
cell.x = x;
cell.y = y;
printf("%d,%d: ", cell.x, cell.y);
grid.cell[i] = cell;
i++;
}
}
return 0;
}
편집하다 :
아래에 주어진 정답, 의견 및 C noob에 대한 귀하의 인내심에 감사드립니다!
내 World
구조체 마지막 요소로서가요 성 부재 배열을 갖는다. 실제로 해당 구성원을위한 공간이 없습니다. 결과적으로 배열에 쓸 때 구조체의 끝을 작성하여 정의되지 않은 동작이 발생합니다.
a를 선언 World *
하고 사용 malloc
하여 구조체와 배열을위한 공간을 할당 해야합니다 .
World *world = malloc(sizeof(World) + 10 * 10 * sizeof(Cell));
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다