반응형

** 배열은 포인터 역할도 하고, 포인터 또한 배열 역할을 한다.

 

** malloc과 free를 이해하자.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include<stdio.h>
#include<stdlib.h> // srand(), rand() 함수
#include<time.h> // time() 함수
 
int main(void)
{
 
 int i;
 int ary[10]; 
 int *p;
 
 srand((unsigned) time(NULL));
 
 for(i = 0 ; i < 10 ; i ++)
 {
  ary[i] = rand();
 }
 
 p = (int *)malloc(sizeof(int* 10); // int형 10개 동적 메모리 할당 
 
 for(i = 10 ; i < 10 ; i ++)
 {
   p[i] = ary[i]; // 포인터는 배열처럼 사용가능 (단, 메모리 동적 할당 시)
 }
 
 printf("index \t ary \t p \n");
 
 for(i = 0 ; i < 10 ; i ++)
 { 
  printf("%d \t %d \t %d \n",i,ary[i],p[i]);
 
  free(p); //  동적 할당 시킨 메모리 해지
  return 0;
 
 }
 
 
 
}
 
Crocus


반응형