일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- CS
- Kotlin
- Win32
- Programming
- Tips강좌
- Javascript
- Tips프로그래밍강좌
- tipssoft
- 연산자
- 알고리즘
- 백준
- 함수
- 티스토리
- 프로그래밍
- 포인터
- Visual Studio
- VS ERROR
- c#
- c
- 문법
- 김성엽
- 리뷰
- 이지스퍼블리싱
- 지식나눔강좌
- Desktop
- 배열
- c++
- Windows
- doit코틀린프로그래밍
- Direct2D
- Yesterday
- Today
- Total
목록malloc (5)
F.R.I.D.A.Y.
malloc VS calloc 동적할당은 프로그램에 조금만 규모가 생기면 잘 사용하게 되는 기술로 C언어에서는 함수를 이용해 동적할당을 받는데요, 동적할당을 하는 함수로는 대표적으로 아래와 같은 것들이 있습니다. malloc calloc real.. pang2h.tistory.com 위 포스트에 댓글로 들어온 질문입니다. malloc 함수를 사용할 때와 달리 왜 calloc 함수는 두 개의 인자를 받아야 할까요? calloc() 이전 포스트에서도 말한 것과 같이 calloc 함수는 malloc 함수로 받은 메모리 공간을 0으로 초기화하여 메모리 시작 주소를 반환하는 함수입니다. 인자 두 개가 필요한 것은 메모리 공간을 0으로 초기화할 때 필요합니다. 다음 코드를 보겠습니다. #include int mai..
동적할당은 프로그램에 조금만 규모가 생기면 잘 사용하게 되는 기술로 C언어에서는 함수를 이용해 동적할당을 받는데요, 동적할당을 하는 함수로는 대표적으로 아래와 같은 것들이 있습니다. malloc calloc realloc 이번 시간에는 위 함수들의 사용 목적에 대해 알아봅니다. # 이 함수들을 사용하기 위해서는 malloc.h 혹은 stdlib.h 헤더를 추가해야합니다. malloc 가장 기본이 되는 함수로서, 대체적으로 동적할당을 들어가게 되면 이 함수를 제일 처음 접하지 않을까 합니다. 이 함수는 아래와 같은 기본형을 가지고 있습니다. void *malloc(size_t size); // from MS DOCS void* malloc(size_t size); size 할당 받을 메모리 크기입니다. 기..
이전 sizeof 연산자에 대한 포스트는 이 포스트를 위한 선행 단계라고 봐도 무방하겠네요. 이번엔 sizeof 연산자를 사용해선 안 되는 부분을 다뤄봅니다. ※ 이 포스트는 Visual Studio 2019 Community v16.1.2. 에서 테스트되었습니다. 메모리 크기는 반환하지 않습니다 우리가 이전에, malloc() 함수 등을 사용하는 동적 할당이라는 방법을 배우기 전엔 배열을 사용했습니다. 이렇게 컴파일 전에도 크기를 알 수 있는 배열을 정적 배열(static array)라고 부르는데, 이 정적 배열을 이용하면서 사용했던 방법은 동적 배열에선 이용할 수 없습니다. 다음 코드를 보겠습니다. #include #include int main(void) { int* arr = (int*)mallo..
Visual Studio가 2017에서 2019로 넘어오며 인텔리센스가 더욱 정교화됐습니다. 이러한 인텔리센스의 업그레이드로 2017에선 하지 않던 경고가 2019에선 하는 경우가 많아졌는데, 이번에 소개할 경고도 같은 경우입니다. 이번 포스팅에서는 C6011 경고가 왜 생기고 어떻게 하면 사라지게 할 수 있는지 알아봅니다. 원인. 잠재적 버그 가능성 #include #include int main(void) { int* p = (int*)malloc(sizeof(int) * 10); for (int i = 0; i < 10; ++i) { p[i] = i + 1; } free(p); return 0; } 대부분의 컴퓨터에서는 문제가 발생하지 않을 코드이지만, 이 코드도 결국 잠재적인 문제를 일으킬 수 있..
Q. https://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040101&docId=322644348 A. 먼저 코드를 봅시다. HEARD1.h #include #include "HEARD1.h" int main(void) { List L; LinstInit(L); } 입니다. 위 코드를 실행하면 아래와 같은 오류와 경고가 발생합니다. malloc은 stdlib.h 헤더를, NULL은 stdio 헤더를 인클루드 해야합니다. 사용하는 곳은 HEARD1.h이므로, main.c에서 인클루드 하였더라도 HEARD1.h와 stdio.h 헤더는 연관성이 존재하지 않아 오류가 일어납니다.