반응형
MATLAB 을 사용해본 분들은 아시겠지만, MATLAB 의 배열 인덱스는 1부터 시작 합니다.
그런데 C 나 그 밖의 컴퓨터 언어들의 배열 인덱스는 보통 0에서부터 시작을 하죠.
모듈로 같은 연산을 할 때는 0 부터 시작하는게 편하지만 그 밖의 몇가지 수학적인 연산에 이용되는 배열의 경우 1 에서부터 시작하는 게 편리 할 때도 있는데요.
이런 경우에 C/C++ 에서 동적 할당을 이용하여 배열을 만드는 방법에 대해 설명 드리려 합니다.
지난 포스팅에서 다차원 배열을 할당 할 때 calloc() 을 사용하여 배열을 할당했는데요.
2011/10/05 - [컴퓨터일반] - C 언어 이차원 동적 배열
다음과 같이 할당한 포인터에 -1 만큼 옵셋을 주면 배열의 인덱스를 1부터 n 까지로 이용 할 수 있습니다.
int n;
Int * Arr; // 배열에 대한 포인터 선언
Arr=(int *)calloc(n , sizeof(int)); // calloc() 함수 이용 동적 배열 선언, n은 배열의 크기
--Arr; // 포인터에 -1만큼 옵셋을 줘서 Arr[1], Arr[2]… Arr[n] 등으로 각 인자의 값에 접근
free(Arr+1); // -1 만큼 옵셋을 줬으므로 +1 을 해서 동적 배열을 해제 해 준다.
반응형
'컴퓨터일반' 카테고리의 다른 글
자바 환경변수 설정 (0) | 2012.08.11 |
---|---|
C/C++ memmove() 함수 속도 실험 (4) | 2012.08.06 |
Codeblock 에서 DLL 사용하기 (0) | 2012.07.31 |
C/C++ memcpy() 함수 속도 (0) | 2012.07.16 |
Perl YouTube download (0) | 2012.06.17 |
GoldWave command line 명령 이용하기 (0) | 2012.06.05 |
Visual studio 에서 math.h 정의시 상수 사용 방법 (0) | 2012.06.03 |
안드로이드에서 팟캐스트 듣기 (2) | 2012.04.04 |
댓글