Note/coding

[NOTE : coding] C에서 0과 NULL의 차이?

jir4vvit 2021. 1. 25. 18:17

[DEFCON 2019] speedrun-001 풀이 이거 풀다가 execve 인자를 NULL로 주고 싶은데 NULL 이라는 값을 어떻게 줘야할 지 모르겠어서 한번 공부해봤다.

 

#gcc -o test test.c
#include <stdio.h>

int main()
{
    char a = 0;
    char b = NULL;

    return 0;
}

a와 b에는 어떻게 값이 들어갈까?

 

gdb를 통해 확인해보니 둘 다 0이 들어간다...

 

그리고 애초에 아스키 코드표를 보면 NULL이 0이다 ㅋㅋ

 

 

 

결론은 인자로 NULL 주고 싶을 때 걍 0 주면 된다. 근데 값은 같지만 의미는 살짝 다르니 조심