나는 C를 배우고 동적 배열을 작성하려고합니다. 이것에 대한 훌륭한 튜토리얼을 발견했지만 모든 것을 얻지는 못합니다. 내가 가진 코드는 지금은 배열에 3 요소를 추가 할 수 있지만 그것은 단지 2에 할당하지만 인쇄 할 때 그것을 잘 작동 내 주요 기능에C 동적 배열 요소 액세스
typedef struct{
int size;
int capacity;
char *data;
}Brry;
void brry_init(Brry *brry){
brry->size = 0;
brry->capacity = 2;
brry->data = (char *)calloc(brry->capacity, sizeof(char));
}
void brry_insert(Brry *brry, char value){
brry->data[brry->size++] = value; //so do check here if I have enough memory, but checking something out
}
int main(void){
Brry brry;
brry_init(&brry);
for (int i = 0; i < 3; i++) {
brry_insert(&brry, 'a');
}
printf("%c\n", brry.data[2]);
return 0;
}
입니까? 나는 이상한 가치가 인쇄되기를 기대했다. 왜 이것이 아니면 내가 뭔가 잘못하고있는 걸까요?
'brry.data [3]'은 네 번째 요소입니다. – Novak
죄송합니다 실수를 복사 – Haagenti
이것은 [정의되지 않은 동작] (http://stackoverflow.com/a/367662/1113392) – A4L