Quick actions

cmd+k|ctrl+k

Navigation

Languages

UNIT 59.3

Snippet info

Language

C

Visibility

unlisted

Author

legacy-anonymous

Created

2020-03-13T06:34:43Z

Updated

2020-03-13T06:34:43Z

#include <stdio.h>
#include <stdlib.h>    // malloc, free 함수가 선언된 헤더 파일

int main()
{
    void *ptr = malloc(100);    // 100바이트만큼 메모리 할당

    printf("%p\n", ptr);               // 00FADD20: 메모리 주소. 컴퓨터마다, 실행할 때마다 달라짐
    printf("%p\n", (int *)ptr + 1);    // 00FADD24: 다른 포인터로 변환한 뒤 포인터 연산
    printf("%p\n", (int *)ptr - 1);    // 00FADD1C: 다른 포인터로 변환한 뒤 포인터 연산

    void *ptr2 = ptr;    // 메모리 주소를 변화시킬 때는 다른 포인터에 보관
    int *int_ptr = (int*)ptr2;
    
    
    printf("%p\n", ++int_ptr);     // 00FADD24: 다른 포인터로 변환한 뒤 포인터 연산
    printf("%p\n", --int_ptr);     // 00FADD20: 다른 포인터로 변환한 뒤 포인터 연산

    printf("%p\n", int_ptr++);   // 00FADD20: 다른 포인터로 변환한 뒤 포인터 연산
    printf("%p\n", int_ptr--);   // 00FADD24: 다른 포인터로 변환한 뒤 포인터 연산
    
    //printf("%p\n", ++(int *)ptr2);     // 00FADD24: 다른 포인터로 변환한 뒤 포인터 연산
    //printf("%p\n", --(int *)ptr2);     // 00FADD20: 다른 포인터로 변환한 뒤 포인터 연산

    //printf("%p\n", ((int *)ptr2)++);   // 00FADD20: 다른 포인터로 변환한 뒤 포인터 연산
    //printf("%p\n", ((int *)ptr2)--);   // 00FADD24: 다른 포인터로 변환한 뒤 포인터 연산

    free(ptr);

    return 0;
}
INFO