Data Analysis(20)
-
void 포인터와 const 포인터
void 포인터void라는 키워드는 보통 함수 앞에서 반환형이 없을 때 쓰인다.그렇다면 (int *), (char *)형 포인터와 어떤 차이가 있을까? 다음 코드를 살펴보자int a = 100;int *b = &a;이 코드가 의미하는 바는 다음과 같다.b는 a의 주소를 저장하고 있고, b를 통해 a를 참조할 수 있는데, 그곳에는 int형 데이터가 있다. 그렇다면 void 포인터를 선언하는 코드 역시 다음과 같이 해석할 수 있을 것이다.int a = 100;void *b = &a;b는 a의 주소를 저장하고 있고, b를 통해 a를 참조할 수 있는데, 그곳에는 void형 데이터가 있다. 그러나 void는 "빈공간'. 즉 자료형을 가지고 있지 않기 때문에 컴파일러는 데이터를 참조할 수 없을 것이다.왜냐하면 자..
2023.12.26 -
[C] 메모리 할당 방법
9살 때 집에서 생일파티를 한 적이 있다. 친구들이 많이 올 것이라 예상하고, 치킨, 피자 등 여러가지 음식을 준비했으나 갑자기 친구들이 일이 생겨서 2명 밖에 오지 않았고, 그래서 음식을 다 남겼던 아직까지도 슬픈 기억이 있다.. 누군가는 이 이야기를 듣고 다음과 같이 얘기할 수 있다. 제목을 메모리 할당으로 지어놓고 갑자기 생일파티? 오늘 얘기할 메모리 할당과 연관지어 보자. 동적 할당 vs 정적 할당 정적 (Statics) 처음 내 생일 파티에 참석할 친구 수는 미리 알려져 있었다. 따라서, 생일 파티 전날에 친구 수를 확인하고, 정해진 친구 수에 맞게 음식과 접시를 미리 준비하면 된다. 파티가 시작되면 이미 준비된 음식과 접시를 사용하며, 나중에 친구가 오더라도 새로운 준비를 할 필요가 없는 것!..
2023.12.24