본문 바로가기

포인터

[C언어] 링크드리스트를 이용한 stacklist view plaincopy to clipboardprint? #include #include typedef int element; typedef struct stackNode { element data; //해당 노드의 값을 가지고 있는 int형 data변수 struct stackNode* link; // 이전 노드의 주소값을 가지고 있게 될 구조체 포인터 변수 }stackNode; stackNode* top; // 최상위 값을 가지게 되는 포인터 구조체 변수 stackNode* cur; // 현재 위치값을 가지게 될 포인터 구조체 변수 stackNode* curprev; // 현재 위치값의 이전값을 가지게 될 구조체 변수 int flag = 0; void push(element num) { stackN.. 더보기
[C언어] 포인터 - 선언, 사용 1. 포인터 1.1 포인터의 선언 포인터는 프로그램 메모리 주소를 가질 수 있는 변수 타입입니다. C언어에서 포인터를 선언할 때에는 원소 타입을 명시하고 포인터 변수를 지시하는 *를 명시하게 됩니다. 포맷: [type] *[변수명]; int *p_exam; /* 정수형 포인터형 번수 p_exam을 선언하였다. */ 여기서 p_exam은 메모리 주소를 갖을 수 있는 포인터 타입으로 해당 메모리 주소에 있는 원소를 int형으로판단하고 사용하겠다는 의미입니다. 실제 p_exam이 가지고 있는 메모리 주소에는 실제 정수형 변수가 있을 수도 있지만 다른 타입의 변수가 있거나 아무런 의미가 없는 주소일 수도 있습니다. p_exam을 적절한 주소를 대입하고 이를 관리하는 것은 모두 개발자의 책임으로 되어있고 이에 개.. 더보기
[C언어] 배열과 포인터 1 다양한 포인터와 배열 int *pa1[10]; /* 포인터 배열 */ int (*pa2)[10]; /* 배열 포인터 */ int **pp; /*다차원 포인터 */ void *vp; /* void 포인터 */ int (*fnCmp)(int ,int) /* 함수 포인터 */ 여기에서는 좀 더 다양한 포인터와 배열에 대해 살펴 보기로 합시다. 실제 사용하는 자세한 예는 동적 메모리 할당이나 프로그래밍 과정 및 프로젝트를 통해 소개될 것이며 여기에서는 기본적인 내용에 대한 소개를 하도록 하겠습니다. 그리고, 실제 여러분들이 주제를 정해 프로젝트를 해 나가는 경험을 통해 정확하게 이해하실 수 있을 것이라 생각됩니다. 여기에서는 이들에 대한 표현의 구분 및 기본적인 문법 사항을 점검하시길 바랍니다. 1.1 포인.. 더보기
[C언어] 포인터 - void *와 함수 포인터 (기본) 1.1 void 포인터 포인터 타입은 원소 타입이 무엇이든 상관없이 프로그램의 메모리 주소를 갖고 있다는 공통점을 갖고 있습니다. 그리고, 프로그램의 메모리 주소가 특정 타입은 어떠한 메모리 주소를 갖어야 한다는 규제는 없습니다. 결국, 포인터 타입의 원소 타입이 있는 것은 개발자가 사용하기 용이하게 하기 위해서 있는 것이지 그 이상의 의미는 없습니다. 이번에 배울 void 포인터의 경우는 원소 타입을 명시하지 않고 선언하고 사용할 때 어떠한 포인터 타입도 받아서 사용할 수 있게 해 주는 포인터로 일반화 과정과 직접적으로 관련이 있습니다. 일반화에 대한 자세한 내용은 프로그래밍 과정에서 상세히 다루도록 하고 여기서는 기본적인 것에 대한 언급만 하도록 하겠습니다. void foo() { int a = 2;.. 더보기
C언어 :: 이중포인터 사용법 [질문] #include #include void main(void){ char **txt_image; int i,j,k; for(i=0; i 더보기