C언어 썸네일형 리스트형 [C언어] calloc() 과 realloc() 안녕하세요 ! 초보개발자 입니다. 이 블로그는 개인 공부 정리용 블로그 입니다. 혹 잘못된 내용이 있다면 지적 부탁드리겠습니다.그리고 질문주신다면 최대한 아는선에서 답변드리도록 하겠습니다.그럼 시작하도록 하겠습니다. calloc() 과 realloc() 동적메모리를 할당 하는 방법에는 malloc() 외에 calloc()과 realloc()이 있습니다. 먼저 calloc()에 대해서 알아보겠습니다. calloc()은 다음과 같이 정의 되어 있습니다. void *calloc(size_t count, size_t size); calloc()은 두개의 매개 변수를 가지고 있습니다. 두개의 매개 변수는 각각 크기와 개수를 따로 받습니다. 다음은 malloc() 으로 메모리 할당하는 법과 calloc()으로 메모.. 더보기 [C언어] 포인터(10) - 배열과 매개변수 안녕하세요 ! 초보개발자 입니다. 이 블로그는 개인 공부 정리용 블로그 입니다. 혹 잘못된 내용이 있다면 지적 부탁드리겠습니다.그리고 질문주신다면 최대한 아는선에서 답변드리도록 하겠습니다.그럼 시작하도록 하겠습니다. 배열과 매개변수 매개변수를 통해 배열을 전달하려고 할 때 매개변수의 타입을 배열로 하면 됩니다. 하지만 이는 성능상 문제가 있습니다. 왜냐하면 배열의 크기가 작으면 상관 없지만 배열의 크기가 클 경우에는 시간이 아주 오래 걸릴 수 있습니다. 그렇기 때문에 매개변수로 배열을 넘겨주는 것 보다 배열의 주소만 넘겨주게 되면 성능적으로 매우 효율적이고 메모리도 많이 절약 할 수 있습니다. 예를 들면 다음과 같이 할 수 있다. 1234567891011121314#include int sumArr(in.. 더보기 [C언어] 포인터(6) -[] 연산자 안녕하세요 ! 초보개발자 입니다. 이 블로그는 개인 공부 정리용 블로그 입니다. 혹 잘못된 내용이 있다면 지적 부탁드리겠습니다.그리고 질문주신다면 최대한 아는선에서 답변드리도록 하겠습니다.그럼 시작하도록 하겠습니다. [] 연산자 오늘은 [] 연산자에 대해서 알아보겠습니다. []은 어디서 봤을까요 ? 그렇습니다. 배열에서 요소에 접근할 때 [] 연산자를 이용하여 접근을 하였습니다. []연산자는 지정된 주소에서 i만큼 떨어진 곳의 값을 읽어 오는데 사용 할 수 있습니다. 즉 [] 연산자는 다음과 같이 정의 할 수 있습니다. 주소[i] = 주소에서 i만큼 떨어진 곳에 저장된 값을 반환한다. 이 말을 잘 기억해 주세요. 그렇다면 배열이름[i] 라고 이때까지 알고있었는데 배열이름이 주소라는 이야기 일까요 ? 네 .. 더보기 [C언어] 포인터(5) - 포인터의 연산 안녕하세요 ! 초보개발자 입니다. 이 블로그는 개인 공부 정리용 블로그 입니다. 혹 잘못된 내용이 있다면 지적 부탁드리겠습니다.그리고 질문주신다면 최대한 아는선에서 답변드리도록 하겠습니다.그럼 시작하도록 하겠습니다. 1.포인터(5) 1) 포인터의 연산 포인터에 저장된 값은 부호없는 정수 입니다. 그렇기 때문에 정수 처럼 덧셈 뺄셈 등 증감연산자나 비교연산도 가능합니다. 다음과 같은 코드에서 ptr++의 결과를 알아 보도록 하겠습니다. int *ptr = (int *)0x100; ptr++을 하였으니 0x101될 것이라고 생각할 수 있습니다. 하지만 이것은 잘못된 생각 입니다. ptr은 int 형이기 때문에 0x100 ~ 0x103 까지의 범위를 사용합니다. 그렇기 때문에 ptr++을 했을 경우에는 0x1.. 더보기 [C언어] 포인터(2) - 포인터의 형변환 안녕하세요 ! 초보개발자 입니다. 이 블로그는 개인 공부 정리용 블로그 입니다. 혹 잘못된 내용이 있다면 지적 부탁드리겠습니다.그리고 질문주신다면 최대한 아는선에서 답변드리도록 하겠습니다.그럼 시작하도록 하겠습니다. 1.포인터(2) 1)포인터의 형변환 포인터의 타입도 변수처럼 형변환이 가능합니다. 포인터의 타입이 의미하는 것은 얼마만큼의 데이터를 읽어 오는지에 대한것이며 포인터 타입이 형변환이 되면 읽어올 데이터의 양과 해석방법이 달라질뿐 저장된 값에는 아무런 영향을 미치지 않습니다. 단계별로 포인터 타입간의 형변환을 살펴보도록 하겠습니다. (1) 변수 i의 주소를 포인터pi에 저장을 합니다.(i의 주소값은 0x100이라고 가정하였습니다.)int i =0x1B2B3B4B;int *pi = &i; (2) .. 더보기 [C언어] 포인터(1) - 포인터란 ? 안녕하세요 ! 초보개발자 입니다. 이 블로그는 개인 공부 정리용 블로그 입니다. 혹 잘못된 내용이 있다면 지적 부탁드리겠습니다.그리고 질문주신다면 최대한 아는선에서 답변드리도록 하겠습니다.그럼 시작하도록 하겠습니다. 1. 포인터 1. 변수와 메모리 주소 int i = 1; 이 코드는 int형 타입의 변수 i를 선언하고 1을 저장한 코드입니다. 변수 i는 메모리 어딘가에 저장될 것 입니다. 위 그림에서 파란색 부분이 i 변수 입니다. 메모리의 주소는 0x100 ~ 0x103 까지 4byte의 공간이 주어졌습니다. 요약하면 다음과 같습니다. 변수의 이름 : i변수의 타입 : int메모리 주소 : 0x100값 : 0x000000001 이때까지 변수를 변수의 이름으로만 다루었지만 변수를 주소로 다루는 것도 가능.. 더보기 [C언어] 지역변수, 전역변수,정적변수 안녕하세요 ! 초보개발자 입니다. 이 블로그는 개인 공부 정리용 블로그 입니다. 혹 잘못된 내용이 있다면 지적 부탁드리겠습니다.그리고 질문주신다면 최대한 아는선에서 답변드리도록 하겠습니다.그럼 시작하도록 하겠습니다. 1. 지역 변수 {} 블럭내에 선언된 변수를 지역 변수라고 합니다. 함수의 몸통이나 조건문과 반복문의 {} 블럭에 우리는 변수를 선언하여 왔습니다. 그래서 우리는 이때까지 지역변수만을 선언 하였습니다. 아래에 나와 있는 코드를 보면 x, y , result는 모두 지역 변수 입니다. void add(int x, int y){ int result=0;result = x + y;return result;}다른 예제를 한번 살펴 보도록 하겠습니다. void func() { int tmp = 100.. 더보기 [C언어] 함수(2) 안녕하세요 ! 초보개발자 입니다. 이 블로그는 개인 공부 정리용 블로그 입니다. 혹 잘못된 내용이 있다면 지적 부탁드리겠습니다.그리고 질문주신다면 최대한 아는선에서 답변드리도록 하겠습니다.그럼 시작하도록 하겠습니다. 함수(FUNCTION) 1. 함수의 원형 선언 저번시간에 우리는 함수를 선언 할 때 선언부(반환타입,함수이름,매개변수 선언)와 구현부(구현할 문장)로 구성되어 있다는 것을 배웠습니다. int sum(int x, int y){int result = x + y; return result;} 여기서 함수의 선언부만 적는 것을 함수의 선언이라고 합니다. 그렇다면 함수의 원형을 선언하는 이유는 무엇일까요 ? 예를 들어 보겠습니다. 123456789101112131415#include int main(.. 더보기 [C언어] 함수(1) 안녕하세요 ! 초보개발자 입니다. 이 블로그는 개인 공부 정리용 블로그 입니다. 혹 잘못된 내용이 있다면 지적 부탁드리겠습니다.그리고 질문주신다면 최대한 아는선에서 답변드리도록 하겠습니다.그럼 시작하도록 하겠습니다. 함수(FUNCTION) 1. 함수란 ? 함수는 특정 작업을 수행하는 일련의 문장들을 하나로 묶은 것입니다. 어떤 값을 입력하면 입력된 값을 이용하여 작업을 수행해 결과를 반환하는 것입니다. 예를 들면 이때까지 우리가 사용하였던 printf 함수는 문자열을 입력하면 입력한 문자열을 출력 합니다. 위 그림을 바탕으로 함수는 다음과 같은 기본적인 세가지로 이루어져있는 것을 알 수 있습니다. - 함수의 이름(sqrt)- 함수의 입력(4.0)- 함수의 출력(2.0) 입력 값만 함수에 넣으면 결과를 출.. 더보기 [C언어] 연습문제 안녕하세요 ! 초보개발자 입니다. 이 블로그는 개인 공부 정리용 블로그 입니다. 혹 잘못된 내용이 있다면 지적 부탁드리겠습니다.그리고 질문주신다면 최대한 아는선에서 답변드리도록 하겠습니다.그럼 시작하도록 하겠습니다. 1. 아래와 같이 출력되는 프로그램을 작성하시오. 12345678910111213#include int main(void) { int sum = 0; for (int i = 1; i 더보기 이전 1 2 3 다음