포인터
-
[자료구조] malloc과 포인터 복습Stage/Computer Science 2021. 6. 1. 23:21
학습 목표 포인터의 개념과 malloc 함수의 용법을 잘 이해할 수 있다. 1. 오류 파악하기 아래 코드를 보고 문제가 될 만한 지점이 어디인지 찾아보자. int main(void) { int *x; int *y; x = malloc(sizeof(int)); *x = 42; *y = 13; } malloc 함수는 할당하고 싶은 크기를 인자로 받는다. 의미를 바로 파악하지 못한 부분: *x = 42 = x의 주소로 가서 42를 저장해라. 문제가 되는 부분은 *y = 13; 이 부분이다. 위 코드에서 x에는 메모리를 할당해줬는데, y에는 아무런 액션을 취한 것이 없다. y는 포인터로는 선언되었는데, 어디를 가리킬지에 대해서는 아직 정의가 되지 않았다. 초기화 되지 않은 *y는 프로그램 어딘가를 임의로 가리키..
-
[메모리] 포인터Stage/Computer Science 2021. 5. 31. 22:27
학습 목표 포인터 변수를 정의하고 사용할 수 있다. 1. * & 연산자는 메모리의 주소를 가져오는 것이고, * 연산자는 메모리의 주소에 있는 값을 가져오는 것이라고 배웠다. 그리고 우리는 이 연산자를 이용해서 포인터 역할을 하는 변수를 선언할 수도 있다. 1.1 포인터 역할을 하는 변수 선언 #include int main(void) { int n = 50; int *p = &n; printf("%p\n", p); printf("%i\n", *p); } int n 에 50이라는 값이 저장 돼있고, n의 주소를 가져 와서 *p 변수에 저장하고 있다. 한번도 본 적 없는 게 나왔는데, int *p에서 *는 이 변수는 포인터 입니다를 나타내고, int는 이 포인터가 int 타입의 변수를 가리킨다는 의미이다. ..