Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- programmers
- php
- 따라하면서 배우는 C언어
- greedy
- C언어
- udemy
- server
- web
- 따라하며 배우는 C언어
- BASIC
- Python
- BFS
- 백준
- Cleancode
- C
- dfs
- Algospot
- 생활코딩
- 종만북
- String
- graph
- BOJ
- 인프런
- Algorithm
- Math
- 따배씨
- sorting
- DP
- 정수론
- JavaScript
Archives
- Today
- Total
몽상실현개발주의
[따배씨] 12.16 calloc(), realloc() 본문
따배씨 - 따라하며 배우는 C언어
12강 Storage Classes, Linkage and Memory Management
12.16 calloc(), realloc()
#include <stdio.h>
#include <stdlib.h>
int main(){
int n = 10;
int* ptr = NULL;
// ptr = (int*)malloc(sizeof(int)*n);
ptr = (int*)calloc(n, sizeof(int));
if(!ptr) exit(1);
for(int i = 0; i < n; i++)
printf("%d ", ptr[i]);
// 0 0 0 0 0 0 0 0 0 0
printf("\n");
return 0;
}
(변환할 형*)calloc(크기, 사이즈);
- malloc() 과 달리 calloc()은 2개의 인자를 받음
- 메모리 공간 할당시, 0으로 자동 초기화
#include <stdio.h>
#include <stdlib.h>
int main(){
/*
realloc()
- doesn't initialize the bytes added
- returns NULL if can;t enlarge the memory block
- If first argument is NULL, it behaves like malloc()
- If second arguemnt is 0, it frees the memory block.
*/
int n = 10;
int* ptr = (int*)calloc(n, sizeof(int));
for (int i = 0; i < n; ++i)
ptr[i] = i + 1;
n = 20;
int* ptr2 = NULL;
ptr2 = (int*)realloc(ptr, n * sizeof(int));
printf("%p %p\n", ptr, ptr2);
return 0;
}
int* ptr2 = NULL;
ptr2 = (int*)realloc(ptr, n * sizeof(int));
- realloc()은 2개의 인자를 받음
- 할당받은 메모리 블럭의 pointer, NULL pointer 면 malloc() 으로 동작
- 새로 할당받을 메모리 사이즈
ptr = (int*)realloc(ptr, n * sizeof(int));
- 기존 할당받은 메모리 블럭의 사이즈를 변겨하는것도 가능
- 추가된 공간의 초기화는 해주지 않음
이 글의 모든 사진과 내용의 출처는 홍정모 교수님께 있음을 알려드립니다.
http://blog.naver.com/atelierjpro
http://www.inflearn.com/course/following-c
'Language > C' 카테고리의 다른 글
[따배씨] 12.18 자료형 한정자들 const, volatile, restrict (0) | 2021.06.15 |
---|---|
[따배씨] 12.17 동적 할당 메모리와 저장 공간 분류 (0) | 2021.06.15 |
[따배씨] 12.15 동적 할당 메모리를 배열처럼 사용하기 (0) | 2021.06.15 |
[따배씨] 12.14 메모리 누수와 free() 의 중요성 (0) | 2021.06.15 |
[따배씨] 12.13 메모리 동적 할당 (0) | 2021.06.14 |
Comments