I 런타임에서 결정된 길이를 갖는 배열이 일반적으로 어레이를 선언함으로써 가능하다는 것을 알고복합 리터럴이 c99에서 가변 길이를 가질 수있는 방법이 있습니까?
char buf[len];
하고 난 화합물 litral으로 배열을 선언하고 포인터의 중간에 할당 할 수 있음을 알고
char *buf;
....
buf = (char[5]) {0};
그러나 두 가지를 결합해도 작동하지 않습니다 (표준에서는 허용되지 않습니다).
내 질문은 : 다음 코드의 효과를 얻을 수있는 방법이 있습니까? (len
참고)
char *buf;
....
buf = (char[len]) {0};
감사합니다.
는
왜'memset' 옵션이 아닌가요? –
@AlexandreC. 첫 번째 코드 세그먼트 (복합 스택에 메모리를 동적으로 할당)가 복합 문자 표기법을 사용하여 수행하려고합니다. – seininn
유효한 휴대용 C를 작성하는 데 신경 쓰지 않는다면,'alloca'를 사용할 수 있습니다 ... –