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
- 종만북
- 따라하며 배우는 C언어
- php
- BFS
- String
- C언어
- sorting
- 생활코딩
- BOJ
- BASIC
- 따라하면서 배우는 C언어
- graph
- greedy
- 백준
- C
- udemy
- Cleancode
- web
- Python
- 정수론
- DP
- programmers
- Algospot
- 따배씨
- Math
- Algorithm
- JavaScript
- dfs
- server
- 인프런
Archives
- Today
- Total
몽상실현개발주의
[따배씨] 9.14 포인터와 코딩 스타일 ~ 9.16 디버거로 메모리 들여다 보기 본문
따배씨 - 따라하며 배우는 C언어
9강 함수
9.14 포인터 Pointer 와 코딩 스타일
#include <stdio.h>
int main(){
int* a, b;
// a 만 포인터, b는 정수
int* c, * d;
// c 와 d 둘다 포인터
int* e;
int* f;
// 분리하는 표현법이 추천됨
return 0;
}
9.15 NULL 포인터와 런타임 에러
#include <stdio.h>
int main(){
int a;
printf("%p\n", &a);
// 0x7ffeefbff488
printf("%d\n", a);
// 86053
return 0;
}
- 일반 변수를 선언 후 값을 대입하지 않으면, 쓰레기 값이 저장되어 있음
#include <stdio.h>
int main(){
int *ptr;
printf("%p\n", ptr);
// 0x7ffeefbff4a8
printf("%d\n", *ptr);
// 0
return 0;
}
- 포인터 변수 선언 후 값을 대입하지 않으면, 0이 기본으로 저장되어 있음
#include <stdio.h>
int main(){
int *ptr = 123;
printf("%p\n", ptr);
printf("%d\n", *ptr);
return 0;
}
- Runtime Error 발생
- 123 이라는 주소에 접근하였기 때문에 문제 발생
#include <stdio.h>
int main(){
int* safer_ptr = NULL;
// 포인터를 선언 하자 마자 NULL로 초기화
int a = 123;
int b;
scanf("%d", &b);
if (b % 2 == 0)
safer_ptr = &a;
if (safer_ptr != NULL)
printf("%p\n", safer_ptr);
return 0;
}
- 포인터의 사용에 NULL 로 초기화해서 사용하는것이 일반적
9.16 디버거로 메모리 들여다 보기
- skip
이 글의 모든 사진과 내용의 출처는 홍정모 교수님께 있음을 알려드립니다.
'Language > C' 카테고리의 다른 글
[따배씨] 10.1 배열과 메모리 (0) | 2021.06.04 |
---|---|
[따배씨] 9.17 포인터 변수의 크기 ~ 9.18 포인터형 매개변수 (0) | 2021.06.03 |
[따배씨] 9.13 포인터의 기본적인 사용 방법 (0) | 2021.06.03 |
[따배씨] 9.12 포인터 Pointer 의 작동 원리 (0) | 2021.06.03 |
[따배씨] 9.11 헤더 파일 만들기 (0) | 2021.06.03 |
Comments