안녕하세요 다름이 아니라 가변 배열을 visual studio에서 구현하지 못하겠어서 질문을 남겼습니다.
일단 코드대로 해봤는데 안 돼서 구글링으로 여러가지 해봐서 알아봤는데
속성 > 언어 > 예에서 아니오로 바꾸기도 해보고 malloc함수를 이용하는 방법도 있었는데 그것도 오류가 나서
물어볼 곳이 없어서 질문 드렸습니다.
아 그리고 항상 고생 많으십니다!!
안녕하세요 길벗수험서 운영팀입니다.
교재의 가변 배열은 가변 배열을 허용하는 C 컴파일러(C99 표준 적용 버전)를 이용한 것입니다.
visual studio에서 수행하려면 컴파일러를 다운받아 등록해줘야 하죠.
말록의 사용 방법은 다음과 같습니다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
main() {
int n;
scanf("%d", &n);
int* arry = malloc(sizeof(int) * n);
for (int i = 0; i < n; i++) {
arry[i] = i;
printf("%d", arry[i]);
}
free(arry);
}
1줄 scanf 경고 무시
3줄 malloc 함수 포함한 헤더
7줄 malloc으로 int 사이즈(4바이트) * 입력값(n) 만큼의 메모리를 포인터 변수 arry에 배정
마지막줄 메모리 해제
해당 코드와 관련해서 visual studio의 컴파일러는 주의(warning)를 띄울 수 있으나 무시하셔도 좋은 주의입니다.
해당 주의에 대한 정보는 다음 링크를 참조하세요.
만약 말록으로 2차원 배열을 선언하고 싶다면,
1. int 포인터 자료형으로 구성된 1차원 배열(행)을 생성한 후, int **a;
2. 반복문을 통해 각 행마다 int 자료형으로 구성된 메모리를 배정해주면 됩니다.
행복한 하루되세요 :)
-
관리자2020-07-30 10:15:16
안녕하세요 길벗수험서 운영팀입니다.
교재의 가변 배열은 가변 배열을 허용하는 C 컴파일러(C99 표준 적용 버전)를 이용한 것입니다.
visual studio에서 수행하려면 컴파일러를 다운받아 등록해줘야 하죠.
말록의 사용 방법은 다음과 같습니다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
main() {
int n;
scanf("%d", &n);
int* arry = malloc(sizeof(int) * n);
for (int i = 0; i < n; i++) {
arry[i] = i;
printf("%d", arry[i]);
}
free(arry);
}
1줄 scanf 경고 무시
3줄 malloc 함수 포함한 헤더
7줄 malloc으로 int 사이즈(4바이트) * 입력값(n) 만큼의 메모리를 포인터 변수 arry에 배정
마지막줄 메모리 해제
해당 코드와 관련해서 visual studio의 컴파일러는 주의(warning)를 띄울 수 있으나 무시하셔도 좋은 주의입니다.
해당 주의에 대한 정보는 다음 링크를 참조하세요.
만약 말록으로 2차원 배열을 선언하고 싶다면,
1. int 포인터 자료형으로 구성된 1차원 배열(행)을 생성한 후, int **a;
2. 반복문을 통해 각 행마다 int 자료형으로 구성된 메모리를 배정해주면 됩니다.
행복한 하루되세요 :)