저는 C 언어를 배우기 시작했으며 구조체 배열을 초기화하는 데 어려움을 겪고 있습니다. 기본적으로 높은 목표는 mustache template과 같은 문자열을 가져 와서 배열에 저장된 "정적 문자열"또는 "변수"토큰으로 분리하는 것입니다. 그런 다음 이론적으로 배열을 렌더링하려면 "문자열인지, 문자열을 복사하고, 그렇지 않으면 변수를 가져 와서 값을 가져 와서 문자열에 추가하십시오."를 확인하십시오. 첫 번째 단계의C에서 동적 구조체 배열을 어떻게 초기화합니까?
그래서 하나는 여기에, 단지 토큰의 임의의 수를 처리 할 수있는 배열을 초기화하는 것입니다 내가 시도하고있는 작업은 다음과 같습니다
typedef struct {
int *type; // probably pointing to an enum or something, but not there yet
char *value;
} token;
typedef struct {
// token *tokens[] // how to do this?
} template;
template
compile(char *source) { // source string
token tokens[] = malloc(sizeof(token) * 20) // 20 is arbitrary max
// ... rest of code
}
그래서
token tokens[]
2 곳이있다. 이것을 어떻게 써야합니까? 내가 참조를 시도하는 경우에 상관없이이 오류가 발생하거나 아무 참고 계속 :
error: array initializer must be an initializer list
token tokens[] = malloc(sizeof(tokens));
그냥 내가 C에서 볼,주의해야 할 ++이 벡터 클래스,하지만 난 그냥 똑바로 C.