반응형

malloc 3

동적배열 자료구조의 시작

c언어에서 배열은 가장 단순하면서도 직관적인 자료구조다. 배열의 요소가 연속적인 메모리 공간에 붙어 있고 요소의 타입이 동일하기 때문에, 포인터 연산을 통한 데이터로의 접근이 빠르다. 그런데 배열을 사용하면서도 정형적인 형식과, 특징때문에, 유연한 요소의 삽입과 삭제에 제한이 있고, 일단 선언되면 배열의 크기를 가변적으로 바꿀 수 없기 때문에 유연한 사용에 한계가 있다. memmove 함수를 이용해서 메모리의 위치를 이동하여 삽입 삭제가 가능하지만, 이 또한 처음에 정해진 배열의 크기안에서만 가능하다. 이를 해결 하기 위한 것이 동적배열이다. 2014/03/17 - [프로그래밍/C언어] - 동적배열에서 memmove함수 사용하기 연습 C언어 2014/03/20 - [프로그래밍/C언어] - 자료구조 - 연..

void형과 malloc함수에 대한 이해

오늘은 한번에 두가지 주제에 대해서 다루겠습니다. void와 malloc에 대해서 글을 써내려 가려하는데 좀 버거울 수도 있겠습니다. 저도 두 가지를 연관 지으려면 어떻게 해야할지 고심되고, 또 제가 포스팅을 하는 방식은 가능하면 다른 측면으로 생각해 보려고 노력하기 때문에 엉뚱해 질 수 도 있겠군요. 좀 길어질지 모르겠지만 우선 void에 대해서 알아보죠. void형(type)은 타입으로 보기엔 부족한 부분이 있습니다. 그 부족한 점 때문에 void라는 타입은 포인터변수에만 사용할 수 있네요. 일반 변수에 사용하면, 컴파일러는 에러를 뿜어낼 겁니다..(variable or field '변수명' declared void) 또, 함수의 반환형으로 선언할 수 있는데, 이경우 주의해야할 점이 있습니다. voi..

deprecated conversion from string constant to 'char*'

deprecated conversion from string constant to 'char*' 은 에러가 아닌 경고지만, 해결하지 않는다면, 나중에 문제가 될 소지가 있습니다. 이 경고는 컴파일러를 최신으로 바꾼 후 뜰 수가 있습니다. 그러면 우선 경고를 만들어보겠습니다. 기존엔 이런 표현으로 쓰곤 했습니다. 문제가 있는 표현이지만, 컴파일상에서 에러가 나지 않았었습니다. 형식이 바뀌었습니다. 위 같은 표현으로 쓰기위해선 다음과 같이 써야합니다. 아래는 같은 표현입니다.(기존에 쓰던 방법) const char *c 라는 표현자체가 문자상수라는 표현인데, 확실히const를 명시하는 표현이 정확하다고 생각드네요. 표현은 확실해졌네요. 아니면 string 클래스를 사용해서 객체를 생성하여 사용하는 방법이 있..

반응형