일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- C
- 생활코딩
- BFS
- server
- 따배씨
- dfs
- BASIC
- JavaScript
- 종만북
- 인프런
- 따라하며 배우는 C언어
- php
- String
- C언어
- Cleancode
- Algorithm
- DP
- Algospot
- programmers
- graph
- 백준
- udemy
- BOJ
- greedy
- Math
- Python
- web
- sorting
- 따라하면서 배우는 C언어
- 정수론
- Today
- Total
목록Language/C (186)
몽상실현개발주의
따배씨 - 따라하며 배우는 C언어 12강 Storage Classes, Linkage and Memory Management 12.14 메모리 누수 Leak 와 free() 의 중요성 #include #include int main(){ printf("Dummy Output\n"); { // Heap Memory가 할당되는 block int n = 100000000; // Heap 메모리 공간 요청, 시작 주소값 ptr 에 저장 int* ptr = (int*)malloc(n * sizeof(int)); if (!ptr)// if(ptr == NULL) { printf("Malloc() failed\n"); exit(EXIT_FAILURE); } for (int i = 0; i < n; ++i) ptr[i..
따배씨 - 따라하며 배우는 C언어 12강 Storage Classes, Linkage and Memory Management 12.13 메모리 동적 할당 Dynamic Storage Allocation 동적 할당 메모리는 포인터만 가져오고 인식자가 없음 Heap 메모리 영역에 저장, 프로그래머가 반납하기 전까지 유지 프로그램이 종료되면 자동 반납 필요한 메모리의 크기를 미리 알 수 없을 경우 사용 Runtime 에 메모리 크기가 결정되는 경우, VLA 가변 길이 배열 등 #include #include // malloc(), free() int main(){ /* malloc() returns a void type pointer. void% : generic pointer free() deallocate..
따배씨 - 따라하며 배우는 C언어 12강 Storage Classes, Linkage and Memory Management 12.12 난수 생성기 모듈 만들기 예제 #include #include #include int main(){ /* rand() - 0 to RAND_MAX (typically INT_MAX) - defined in stdlib.h. */ // srand(1); // random seed, seed 값을 바꾸면 다른 랜덤 값이 나옴 srand((unsigned int)time(0)); // seed 값을 매번 바꾸기 위해, time 함수를 이용 for (int i = 0; i < 10; ++i){ printf("%d\n", rand()); // printf("%d\n", rand(..
따배씨 - 따라하며 배우는 C언어 12강 Storage Classes, Linkage and Memory Management 12.10 변수의 저장 공간 분류 요약 정리 - skip 12.11 함수의 저장 공간 분류 // main.c #include /* Storage Classes and Functions - Functions external (by defualt) or static - A function declaration is assumed to be extern */ int g_int = 123; // defining declaration void fun(void); // extern void fun(void); void fun_second(void); // extern void fun_seco..
따배씨 - 따라하며 배우는 C언어 12강 Storage Classes, Linkage and Memory Management 12.9 정적 변수의 내부 연결 internal linkage 여러곳에서 사용하는 전역 변수의 사용을 권장하지 않음 extern 으로 호출한 곳에서 초기화를 권장하지 않음 file scope 에서 선언 시 초기화 권장 file scope 변수의 범위를 file 내로 고정 하려면 static 으로 선언 static int g_int = 10; extern 으로 호출 불가능 이 글의 모든 사진과 내용의 출처는 홍정모 교수님께 있음을 알려드립니다. http://blog.naver.com/atelierjpro 실리콘 밸리의 프로그래머 : 네이버 블로그 안녕하세요! 홍정모 블로그에 오신 것..
따배씨 - 따라하며 배우는 C언어 12강 Storage Classes, Linkage and Memory Management 12.8 정적 변수의 외부 연결 external linkage 여러 파일로 작성된 코드를 각각의 파일을 complier 가 따로따로 complie 하여 obj 파일을 만들고, 실행파일을 만들기 전에 linker 가 연결 external linkage 를 갖는 변수들도 연결 // main.c #include #include "second.c" /* Static variable with external linkage - File scope, external linkage, static storage duration - External storage class - External var..
따배씨 - 따라하며 배우는 C언어 12강 Storage Classes, Linkage and Memory Management 12.7 블록 영역의 정적 변수 Static 블록 밖에서 메모리 주소를 통해 접근이 가능하지만, 추천하지 않음 global 변수로 선언하는것이 좋음 #include void count(){ int ct = 0; printf("count = %d %lld\n", ct, (long long)&ct); } void static_count(){ static int ct = 0; // initialized only once! printf("static count = %d %lld\n", ct, (long long)&ct); ct++; } void counter_caller(){ count(..
따배씨 - 따라하며 배우는 C언어 12강 Storage Classes, Linkage and Memory Management 12.6 레지스터 Register 변수 빠르게 동작하는 프로그램을 위해 변수를 메모리가 아닌 레지스터에 두고 빠르게 사용 할 수 있다 register 키워드를 사용하여 선언 하여도 complier 가 꼭 받아들이지는 않음 #include void temp(register int r){ } int main(){ register int r; r = 123; //int* ptr = &r; // Error return 0; } //int* ptr = &r; // Error 레지스터의 주소값을 가져 올 수 없음 이 글의 모든 사진과 내용의 출처는 홍정모 교수님께 있음을 알려드립니다. htt..