2016-09-29 7 views
1
#include<stdio.h> 

int main() 
{ 
    int row, col; 
    printf("Enter rows and columns for your grid"); 
    scanf_s(" %i%i", &row, &col); 
    int Array[row][col]; 
    return 0; 
} 

이것은 프로그래밍 강사가 제공 한 예이지만 작동시키지 못했습니다. 내 컴파일러 (Visual Studio 2015)가 C2131 오류를 계속 표시합니다. "표현식이 상수로 평가되지 않았습니다."이 방법을 사용할 수있는 방법이 있습니까?가변 길이 생성에 도움이 필요합니다. 배열

+0

당신이 컴파일러의 선택이있는 경우 다음 MSVC는 지원하지 않습니다 GCC – Tibrogargan

+2

을 사용 (이 가능성이기 때문에, 당신은 아마 할 강사는 당신에게 당신이 사용을 가정하고 컴파일러에서 지원되지 않습니다 예를 줄 것이다) 가변 길이 어레이. –

+0

gcc 또는 clang과 같은 표준 호환 컴파일러를 사용하십시오. – Olaf

답변

0

당신은 MSVC는 C89를 지원하는 반면

int **Array; 
Array = malloc(sizeof(int*)*row); 
for(int i=0;i<row;i++) 
Array[i] = malloc(sizeof(int)*col); 
1

VLA malloc는, C99 기능입니다 사용하여 동적 메모리 할당을 사용해야합니다. MSDN documentation for VS 2015에 따라 :

가변 길이 배열은 현재 Visual C++에서 지원되지 않습니다.

+0

VS2015는 사실입니까? –

+0

@EugeneSh .: VS 2015 링크입니다. –

+0

흠. 그러면 페이지의 해당 코드는 무엇을 보여줍니까? –

관련 문제