그래서이 사이트에서 C++은 가변 길이 배열을 허용하지 않지만 gcc는 허용합니다. 그래서,gcc에서 가변 길이 배열을 사용하는 방법은 무엇입니까?
#include<stdio.h>
#include<stdint.h>
void main()
{
int8_t n;
int8_t var_array[n];
int8_t i;
printf("Enter array size: \r\n");
scanf("%d", &n);
for(i=0; i<n; i++)
var_array[i] = i;
for(i=0; i<n; i++)
printf("var_array[%d] = %d\r\n", i, var_array[i]);
}
코드와 함께 컴파일 작은 코드를 테스트하고 싶었다 "GCC var_array.c -o var_array"나는 그것을 실행할 때 리눅스 OS에서 명령하지만, 내가 얻을 분할 오류 오류
Enter array size:
5
Segmentation fault
내가 뭘 잘못하고 있니?
*이 사이트에서 C++은 가변 길이 배열을 허용하지 않습니다. * - 아니요,이 "사이트"가 아닙니다. 이것들은 표준위원회가 정한 C++ 규칙입니다. C++ 배열은 변수가 아닌 항목의 수를 나타내는 상수 표현식을 사용해야합니다. – PaulMcKenzie
@PaulMcKenzie 왜 남자를 만났어요? 내 평판에서 나는 신인이라고 말할 수 있습니다. 당신은 내가 "이 사이트에서 읽음"을 의미한다는 것을 알고있다. – KharoBangdo
당신은'n' 값을주기 전에 배열 크기를'n' **으로 설정하고있다. 그 시점에서 아마도 ** 제로 **입니다 (그러나 그것은 아무것도 될 수 있습니다). – Galik