구조체의 필드에 구조체를 지정하고 싶습니다. 구조체에 대한 포인터입니다.구조체 내부의 다른 구조체에 구조체를 할당하십시오.
typedef struct {
char *name;
} geometry;
typedef struct sceneGR_tag {
geometry *g;
struct sceneGR_tag *next;
} sceneGR;
typedef struct {
geometry *g;
int nshapes;
sceneGR *root;
} scene;
당신이 볼 수 있듯이, sceneGR
는 형상 *의 g (형상 그래서 배열을)이 있습니다 나는 무슨 말인지 여기 당신을 보여줍니다. 전제가 그것의 지오메트리와 함께 'scene'구조체를 이미 초기화했다는 전제가 있습니다. 구조체 'sceneGR'에 지오메트리를 복사하려고합니다. 그래서 sceneGR-> g에 그 구조체를 복사하고 싶습니다.
내가 할 수있는 방법이 for
내에서 :
scene *scn; //already initialized with nshapes=6, and so with 6 geometries until g[5];
for(k = 0; k < scn->nshapes; k++) {
//what can i do here?
}
'장면 * scn;'은 단지 선언입니다. 초기화가 아닙니다. –
사본을 원하거나 동일한 객체를 가리켜 야합니까? – mch
@Jayesh 전체 프로그램을 보여줄 수는 없지만 루프를 수행하기 전에 이미 초기화했음을 신뢰하십시오. 나는 수백 줄의 코드가 있기 때문에 그것을 쓰지 않았다. – Aerox