본문 바로가기

malloc

(2)
([C언어] 24강) "자동적 형변환"과 "명시적 형변환" 안녕하세요! 잭클입니다! 이번 시간에는 자동적 형변환과 명시적 형변환에 대해서 배울건데요 (약간 늦은 감이 있네요 뒤죽박죽 순서 죄송합니다..ㅠㅠ) 자 우선 어렵지 않으니 바로 코드부터 보시죠! #include int main() { char c = 'A'; int number = c; printf("%d",number); } 자 이 코드의 실행 결과는 무엇일까요? 에러가 난다고요? 그럴 것 같지만 아닙니다. 한번 실행해보죠 65가 출력되네요! 왜죠?? 바로 "자동적 형변환" 때문입니다! c에는 char형의 'A'값이 들어있습니다 int형인 number에 c를 넣으려 하니 자동으로 char형 값이 int형으로 형변환되어 'A'의 아스키코드 값인 65가 number변수로 할당되게 됩니다! 이처럼 자동적으로..
([C언어] 23강) 메모리의 동적할당 (malloc, calloc, realloc, free) 안녕하세요 잭클입니다. 이번시간에는 메모리의 동적할당에 대해 배워볼까 하는데요! 우선 우리가 배열은 포인터다 라는 개념을 알고있으니 int arr[4]; int * ptrArr = arr; 이 코드의 의미를 알고있을겁니다. 자 그럼 아래 코드를 한번 보시죠 int arr; int * ptrArr = &arr; 자 위 코드를 보시면 1번코드 2번코드의 ptrArr은 모두 int 포인터형 변수라는것을 알 수 있습니다 하지만 두코드 모두에 ptrArr[1];을 해주면 두번째코드에서만 오류를 발견하게됩니다. 어차피 포인터는 자신이 포인터인것만 기억할뿐, 배열이라는것은 모를텐데 왜 둘의 결과가 다른걸까요? 이유는 이렇습니다. 1번코드에서는 4개 배열인 arr이 생성되면서 메모리에서 4개의 공간을 내주게 됩니다. ..