A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

Similar documents
[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

Microsoft PowerPoint - ch07 - 포인터 pm0415

금오공대 컴퓨터공학전공 강의자료

PowerPoint 프레젠테이션

슬라이드 1

Microsoft PowerPoint - chap06-2pointer.ppt

11장 포인터

KNK_C_05_Pointers_Arrays_structures_summary_v02

금오공대 컴퓨터공학전공 강의자료

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

11장 포인터

PowerPoint 프레젠테이션

구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2

설계란 무엇인가?

1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문

PowerPoint Template

Microsoft PowerPoint - chap11-포인터의활용.pptx

윤성우의 열혈 TCP/IP 소켓 프로그래밍

PowerPoint Template

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

Microsoft PowerPoint - chap10-함수의활용.pptx

Data Structure

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

02장.배열과 클래스

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

<4D F736F F F696E74202D20C1A63132B0AD20B5BFC0FB20B8DEB8F0B8AEC7D2B4E7>

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

untitled

Microsoft PowerPoint - Chapter_08.pptx

chap 5: Trees

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

Microsoft PowerPoint - 제11장 포인터

3. 1 포인터란 3. 2 포인터변수의선언과사용 3. 3 다차원포인터변수의선언과사용 3. 4 주소의가감산 3. 5 함수포인터

Microsoft PowerPoint - 제11장 포인터(강의)

Microsoft PowerPoint - Chapter_09.pptx

슬라이드 1

Chapter 4. LISTS

Microsoft PowerPoint - a10.ppt [호환 모드]

<4D F736F F F696E74202D20C1A63137C0E520B5BFC0FBB8DEB8F0B8AEBFCD20BFACB0E1B8AEBDBAC6AE>

Microsoft PowerPoint - chap-11.pptx

설계란 무엇인가?


Microsoft PowerPoint - chap06-5 [호환 모드]

Infinity(∞) Strategy

Microsoft PowerPoint - 03_(C_Programming)_(Korean)_Pointers

JVM 메모리구조

6.1 Addresses and Pointers Recall memory concepts from Ch2 ch6_testbasicpointer.c int x1=1, x2=7; double distance; int *p; int q=8; p = &q; name addre

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

제 11 장포인터 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

Microsoft PowerPoint - ch07 - 포인터 pm0415

C# Programming Guide - Types

4. 1 포인터와 1 차원배열 4. 2 포인터와 2 차원배열 4. 3 포인터배열 4. 4 포인터와문자그리고포인터와문자열

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

PowerPoint Presentation

PowerPoint 프레젠테이션

Microsoft PowerPoint - [2009] 02.pptx

C++ Programming

Lab 3. 실습문제 (Single linked list)_해답.hwp

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

Microsoft PowerPoint - Chapter_04.pptx

Microsoft PowerPoint - ch08 - 구조체 (structure) am0845

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - 05-chap03-ArrayAndPointer.ppt

UI TASK & KEY EVENT

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

BMP 파일 처리

Microsoft PowerPoint - chap06-1Array.ppt

JAVA PROGRAMMING 실습 02. 표준 입출력

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

쉽게 풀어쓴 C 프로그래밍

슬라이드 1

Chapter 4. LISTS

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

PowerPoint 프레젠테이션

Slide 1

PowerPoint Presentation

슬라이드 1

8장. 포인터

Microsoft Word - FunctionCall

OCW_C언어 기초

기초컴퓨터프로그래밍

문서의 제목 나눔명조R, 40pt

슬라이드 1

PowerPoint Presentation

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Microsoft PowerPoint - chap12-고급기능.pptx

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

Microsoft PowerPoint - Java7.pptx

C 프로그래밊 개요

Microsoft PowerPoint - 제3장-배열.pptx

Microsoft PowerPoint - 8ÀÏ°_Æ÷ÀÎÅÍ.ppt

PowerPoint 프레젠테이션

chap x: G입력

Microsoft PowerPoint - 06-Pointer and Memory.pptx

Microsoft PowerPoint - Chap12-OOP.ppt

Microsoft Word - ExecutionStack

03장.스택.key

Transcription:

C Programming Practice (II)

Contents 배열 문자와문자열 구조체 포인터와메모리관리 구조체 2/17

배열 (Array) (1/2) 배열 동일한자료형을가지고있으며같은이름으로참조되는변수들의집합 배열의크기는반드시상수이어야한다. type var_name[size]; 예 ) int myarray[5] 배열의원소는원소의번호를 0 부터시작하는색인을사용 예 ) myarray[0] = 100; 첫번째원소에 100 을치홖한다. myarray[2] = 150; 세번째원소에 150 을치홖한다. C 에서배열젂체를다른배열에치홖할수없다. 예 ) char a1[10], a2[10]; a2=a1 : 잘못된문장 a1[3] = a2[4] : 올바른문장 3/17

배열 (Array) (2/2) 다차원배열 2차원이상의배열 type var_name[size1][size2]; 예 ) 2차원배열 int twod[3][5]; 배열의초기화 각각의원소를직접초기화 예 ) int a[3]; a[0]=1; a[1]=2; a[2]=4; type array-name[size] = {value-list}; 예 ) int a[5] = {1, 2, 4}; 4/17

문자열 문자열 C에서문자열은 null-terminated character array 로정의된다. 배열의크기는문자열의크기보다 1byte 더커야한다. 문자열상수는컴파일러에의해자동으로 NULL로종료됨. 예 ) Char name[5] = herb ; h e r b /0 name[3]= x ; h e r x /0 5/17

포인터와주소 주소 (Address) 모든변수는메모리상의특정위치에저장되고그위치를주소라한다. & 연산자 변수의주소를알아내는연산자 예 ) int a = 3; printf( %d, %d, a, &a); 반드시기억장소에존재하는변수를피연산자로가져야함 6/17

포인터 (pointer)(1/2) 포인터 기억장소의위치 ( 주소 ) 를저장하는변수 포인터변수의선얶 : type *pointer-variable; int *a; int b = 3; int *a a = &b 참조연산자 * a = &b; 포인터변수가가리키는주소에적혀있는값을의미 예 ) int x = 1, y = 2, z[10]; int *ip; /* ip is a pointer to int */ ip = &x; /* now ip points to x */ y = *ip; /* y is now 1 */ *ip = 0; /* x is now 0 */ ip = &z[0]; /* now ip points to z[0] */ int b = 3; 7/17

포인터 (pointer)(2/2) 주소산술 p 가포인터라면 p++ 는기억장소에서바로다음원소를가리키도록 p 를증가 type *p; 일때 p++ 은포인터는 1 만큼증가하지만실제로기억장소의주소는 sizeof(type) 만큼증가됨 포인터와정수는연산에서호홖되지않음 0 은예외적으로지정또는비교에사용 <stdio.h> 의심볼상수 NULL 은포인터와관렦하여 0 대싞에사용 (c.f. Java : null) int *p; p = NULL; /* make p point to nothing */ if (p == NULL)... /* test if p is NULL pointer */ 포인터 p 에 NULL 을지정하면포인터는기억장소의어떤위치도가리키고있지않다는것을의미 8/17

포인터와배열 배열의이름과포인터의유사점 배열의이름은배열의첫번째원소의주소와같다 pa = &a[0]; 은 pa = a; 과동일 배열 a의원소 a[i] 를 *(a+i) 로나타내는것도가능 &a[i] 와 a+i는동일한의미를가짐 pa[i] 는 *(pa+i) 와같은의미를나타냄 배열의이름과포인터의차이점 포인터는변수이고배열의이름은변수가아니다 포인터의경우는다음과같은연산이가능 pa = a; pa++; 배열의이름은다음과같은연산이허용되지않음 a = pa; a++; 9/17

Calling Convention (1/2) Call by Value 호출함수의변수값이복사되어피호출함수의인자로호출됨 Call by Reference 호출함수의변수가피호출함수의인자로호출됨 C 의경우 모든함수 calling convention 은 Call by Value 호출함수에서피호출함수이변경한변수의결과를사용하려면값을변경시키려는인자를포인터로젂달하여야함 Java 의경우 primitive type 은 call by value, 그외는 call by reference 10/17

Calling Convention (2/2) void swap(int *a, int *b) { int temp; temp = *a; *a = *b; *b = temp; } int main() { int a = 4; int b = 7; swap( &a, &b ) } void swap(int a, int b) { int temp; temp = a; a = b; b = temp; } int main() { int a = 4; int b = 7; swap( a, b ); } 11/17

메모리의동적할당 Malloc (memory allocation) 형식 : void *malloc(size_t size); 프로토타입 : <stdlib.h> 기능 : malloc 함수는크기가 size 인객체 ( 기억장소 ) 를할당한다. 리턴값 : 영역할당이성공한때는확보된영역의선두포인터를되돌려준다. 영역할당이실패한경우는 NULL 을되돌려준다. 예 ) int *p; p = (int *)malloc(1 * sizeof(int)); Free ( 메모리의해제 ) 동적할당한메모리는반드시책임지고해제해야한다. 형식 : void free(void *p); 프로토타입 : <stdlib.h> 기능 : free 는 p 가가리키는기억장소를해제한다. 단 p 가 NULL 일때는아무일도하지않는다. p 는 malloc 등에의하여이젂에할당되었던기억장소의포인터이어야한다. 12/17

구조체 (Structure) (1/2) 구조체란? 하나의이름으로불려지는서로다른형의변수들의모임 Java 에서멤버변수만존재하는클래스와비슷한개념 구조체정의 : struct 구조체이름 {type1 name1; type2 name2; }; 구조체변수선얶 : struct 구조체이름변수명 ; 구조체는배열이나포인터로도선얶가능 struct point { int x; int y; } struct { int x; int y; } center; struct point center;... 13/17

구조체 (Structure) (2/2) 구조체멤버변수접근 구조체이름. 멤버변수이름 ex) int a = center.x + 20; 구조체포인터 구조체의포인터는구조체의첫멤버변수의주소를가리킨다 -> 연산자 : 구조체포인터로부터멤버변수를나타냄 a->x 는 *a.x 와동일한의미, -> 는우선순위가 ++ 보다높다. struct point *center, a={32,24}; center = &a; center->x; (*center).y; 14/17

연습문제 1. 사용자로부터 n x n 의크기를입력받아임의의 integer 숫자로채우고두배열의곱을계산하여출력하는프로그램을작성하라. (rand() 함수를이용하라. man 페이지참조 ) malloc 을사용하여야함. 2. 가변크기 stack 의 push, pop 함수를구현하라. 이때 stack 은 linked list 를이용하여야하며, 이를 test 할수있는 main 함수를설계하고구현하라. 3. 2. 에서작성한프로그램을수정하여 queue 를구현하여라. 15/17