Infinity(∞) Strategy
|
|
- 인경 옹
- 5 years ago
- Views:
Transcription
1 배열 (Array)
2 대용량데이터 대용량데이터를다루는기법 배열 (Array) 포인터 (Pointer) 구조체 (Structure) 파일 (File)
3 변수 (Variable) 변수및메모리할당 변수선언 : int imsi; imsi 4 Bytes 변수선언 : char imsi2; imsi2 1 Byte
4 배열 (Array) 배열 동일한데이터형을가지고있는데이터들을처리할때사용 연속적인메모리공간할당 50 명의학생성적을출력 #include <stdio.h> void grade(int score); int main() int score0, score1,., score49; scanf( %d, &score0); grade(score0); grade(score49); return 0; // 50 번호출 void grade(int score) if(score>=90 && score<100) printf("your grade is A \n"); else if(score>=80 && score<90) printf("your grade is B \n"); else if(score>=70 && score<80) printf("your grade is C \n"); return 0;
5 1 차배열 배열선언 ( 연속적인메모리공간할당 ) 타입 배열이름 배열크기 ( 0부터시작 ) 배열초기화 imsi[0]=0; imsi[1]=0; imsi[2]=0; for(i=0; i<3; i++) int imsi [3]; imsi[i]=0; imsi[0] imsi[1] imsi[2] x08047c64 0x08047c65 0x08047c66 0x08047c67 0x08047c68 0x08047c69 0x08047c6a 0x08047c6b 0x08047c6c 0x08047c6d 0x08047c6e 0x08047c6f int imsi[3]=0;
6 1 차배열 배열초기화 imsi int imsi[3]=5, 3, 7; ( 배열명 ) - 주소를저장할수없다. - 메모리를할당받지않아허공에떠있는것 imsi[0] 5 0x08047c64 &imsi[0] imsi[1] 3 0x08047c68 &imsi[1] imsi[2] 7 0x08047c6c &imsi[2] 배열의주소 배열이름 배열의시작주소를가리키는값 & 연산자를사용하여표시 &imsi[1] : imsi[1] 의주소
7 문자열과배열 문자열초기화 char arrstr[]= sungkyul ; char arrstr[9]= s, u, n, g, k, y, u, l, \0 ; \0 (null character) - 문자열의끝을나타냄 - 사용하는문자열보다 1 개더큰값으로사용 s u n g k y u l \0 0x08047c60 0x08047c64 0x08047c68 0x08047c6c 0x08047c70 0x08047c64 0x08047c68 0x08047c6c 0x08047c70
8 1 차배열 8_1.c ( 성적합산프로그램 ) #include <stdio.h> int main() int i, sum, average; int score[10]; for(i=0; i<10; i++) scanf( %d, &score[i]); for(i=0, sum=0; i<10; i++) sum+=score[i]; printf( sum = %d\n, sum); average = sum/10; printf( average = %d\n, average); return 0;
9 2 중배열 (2 차배열 Two Dimensional Array) 2 차원배열선언 int imsi [3][2]; 타입배열이름배열크기 [ 행 ][ 열 ] 2 차원배열예 한학년에 12 개학급 각학급에 35 명의학생 int score[12][35]; // 12 학급의 35 명의학생 총학생수 : 420 명 메모리관리 : 35 명단위로처리가능
10 2 중배열 (2 차배열 Two Dimensional Array) 2 차배열초기화 int imsi[3][2]=6, 3, 9, 1, 7, 2; 2 차배열의주소 imsi[0][0] imsi[0][1] 6 3 0x08047c60 0x08047c64 배열이름 imsi[1][0] 9 0x08047c68 배열의시작주소를가리키는값 imsi[1][1] 1 0x08047c6c imsi[2][0] 7 0x08047c70 & 연산자를사용하여표시 imsi[2][1] 2 0x08047c74 &imsi[0][1] : imsi[0][1] 의주소
11 2 차배열 2 차행렬의합을구하시오! #include <stdio.h> int main() int i, j, result[3][3]; int a[3][3] = 1, 2, 3, 4, 5, 6, 7, 8, 9; int b[3][3] = 1, 2, 3, 1, 2, 3, 1, 2, 3; for(i=0; i<3; i++) for(j=0; j<3; j++) result[i][j ]= a[i][j] + b[i][j]; printf( The result of Matrix sum\n ); for(i=0; i<3; i++) for(j=0; j<3; j++) printf( %d, result[i][j]); printf( \n ); return 0;
12 프로그램작성방법 문제 => 문제분석 => flow chart => 프로그램작성 ( 코딩 ) => 디버깅 => 실행프로그램
13 프로그램작성방법 순서도 (Flow Chart) 시작과끝 처리 판단 ( 조건문 ) 데이터 ( 입력및출력 )
14 문제 : 1부터 5까지합을구하여화면에출력하시오! 문제분석 기능확인 : 변수결정 : 숫자를나타내는변수 : I 합을저장하는변수 : sum 각변수들의변화관찰 i의변화 : 1씩증가 sum의변화 : i만큼증가
15 Flow Chart 시작 i = 0 sum = 0 i=1 #include <stdio.h> int main() int i=0; int sum=0; i<=5? sum 출력 i=i+1 sum=sum+i for(i=1; i<=5; i++) sum=sum+i; printf( sum = %d\n, sum); return 0; 끝
16 !!
17 포인터
18 차례 포인터개념 배열포인터 문자열선언 2중포인터 포인터배열과이중포인터 함수포인터
19 변수 (Variable) 변수및메모리할당 변수선언 : int imsi; imsi 4 Bytes 변수선언 : char imsi2; imsi2 1 Byte
20 포인터 포인터변수 포인터를저장할수있는변수 메모리의특정위치 ( 주소값 ) 를저장 *imsip 포인터변수선언 int *imsip; 값 ( 정수 ) 이저장된곳의주소를저장하기위해 4Bytes 메모리할당됨 imsi 5 0x8047c200 #include <stdio.h> int main() int imsi=5; int *imsip; imsip 0x8047c200 0x8047c2d0 imsip = &imsi; printf( *imsip : %d 입니다.\n, *imsip); return 0;
21 포인터변수타입 0x08047c24 char * imp_ch; 0x08047c24 4Bytes 0x08047c27 0x08047c28 0x08047c29 0x08047c2a int * imp_int; double * imp_double; 0x08047c27 4Bytes 0x08047c2d 4Bytes 0x08047c2d 0x08047c2e 0x08047c2f 0x08047c30 0x08047c31 0x08047c32 0x08047c33 0x08047c34
22 포인터 #include <stdio.h> int main() int a; int *p; // 변수 // 포인터 a=6; p = &a; // a 의주소값을 p 에 printf( P s address =%p\n, p); prntf( a s address = %p\n, &a); // %p : 메모리주소값출력 printf( p s value = %d\n\n, *p); // p 가가리키고있는곳 (a) 의값 (?) 출력 return 0;
23 포인터 #include <stdio.h> int main() int a; int *p; // 변수 // 포인터 a=6; p = &a; printf( address = %p, value = %d\n, p, *p); // p 가가리키고있는곳 (a) 의값 (?) 출력 *p=100; // p 가가리키고있는곳의값을 100 으로 printf( address = %p, value = %d\n, p, *p); // p 가가리키고있는곳 (a) 의값 (?) 출력 return 0;
24 포인터 p193 9_1.c #include <stdio.h> int main() int a; int score[50]; int *p; // 변수 // 배열 // 포인터 a=6; p = &a; // a의주소값을 p에 printf( Pointer Address =%p\n, p); printf( Memory Address = %p\n\n, &a); // %p : 메모리주소값출력 // 변수a의주소 p=score; // 배열이름으로배열시작주소를 p로 printf( pointer Address = %p\n, p); printf( Memory Address = %p\n, score); printf( score[0] s Address = %p\n, &score[0]); return 0;
25 포인터 #include <stdio.h> int main() int *p; double q, temp; // 포인터 temp= ; p = &temp; q = *p; // temp 의주소값을 p 에 printf( %f\n, q); return 0;
26 포인터 ( 메모리할당 ) 포인터메모리 포인터선언 : 포인터변수 ( 주소를담을변수 ) 를위한메모리할당 할당된메모리에는할당된값이없다. 포인터변수에값을할당하는방법 이미존재하는다른변수들이사용하는메모리를공동으로사용 - ex) int a; int *p; p=&a; 메모리할당함수이용 - ex) malloc(), calloc()
27 포인터 ( 메모리할당 ) 메모리할당함수사용 동적메모리할당 : 실행중에메모리할당 malloc() 함수 / calloc() 함수 void *malloc(size_t size); // size_t = unsigned int void *calloc(size_t nmemb, size_t size); int *p, num; num=50; P = malloc(sizeof(int)*num); P = (int *)malloc(sizeof(int)*num); // (4bytes)*num = 4*50 = 200bytes 할당 int *p, num; num=50; p=(int *)calloc(num, sizeof(int)); // 4bytes 짜리 50 개할당후 => 0 으로초기화
28 배열과포인터 - 포인터를배열과동일하게사용가능 차이점 : 주소값자체를변경가능 #include <stdio.h> #include <stdlib.h> #include <stdio.h> #include <stdlib.h> int main() int *p; p=(int *)malloc(sizeof(int)*10); int main() int *p; p=(int *)malloc(sizeof(int)*10); p[0]=30; p[3]=10; printf("*p = %d\n", *p); printf("p[0] = %d\n", p[0]); printf("p[3] = %d\n", p[3]); free(p); = *p=30; p=p+3; *p=10; printf("*p = %d\n", *p); printf("p[0] = %d\n", p[0]); printf("p[3] = %d\n", p[3]); free(p); return 0; return 0;
29 배열포인터 배열포인터 배열을가리키는포인터변수 종류 1차배열포인터 2차배열포인터
30 배열포인터 (1 차 ) 1 차배열포인터 1 차배열을가리키는포인터변수 imsi ( 배열명 ) - 주소를저장할수없다. - 메모리를할당받지않아허공에떠있는것 imsi[0] imsi[1] 3 5 0x08047c64 0x08047c68 imsip+0 imsip+1 imsi[2] 7 0x08047c6c imsip+2 int imsi[3]= 3, 5, 7; int *imsip; imsip=imsi; imsip 0x08047c64 0x08047c88
31 배열포인터연산 (1 차 ) 1 차배열포인터의포인터연산 char * imsip; int * imsip; imsip; imsip imsip+0; imsip+1; imsip+2; *imsip+0; *imsip+1; *imsip+2; *(imsip+0); *(imsip+1); *(imsip+2);
32 배열포인터연산 (1 차 ) #include <stdio.h> int main() int imsi[3]=3,5,7; int *imsip; imsip=imsi; printf("imsip+0 = %p\n", imsip+0); printf("imsip+1 = %p\n", imsip+1); printf("imsip+2 = %p\n", imsip+2); printf("*imsip+0 = %d\n", *imsip+0); printf("*imsip+1 = %d\n", *imsip+1); printf("*imsip+2 = %d\n", *imsip+2); imsip 0x08047c64 printf("*(imsip+0) = %d\n", *(imsip+0)); printf("*(imsip+1) = %d\n", *(imsip+1)); printf("*(imsip+2) = %d\n", *(imsip+2)); return 0;
33 배열포인터연산 (1 차 ) - #include <stdio.h> #include <stdlib.h> int main() int i, sum, *score; p199 9_2.c => p176 의 8_1.c 를포인터를이용하여처리 score=(int *)malloc(sizeof(int)*5); for(i=0; i<5; i++) scanf("%d", score++); score-=5; // score 가처음주소를가리키게함 for(i=0,sum=0; i<5; i++, score++) sum+=*score; printf("sum = %d\n", sum); free(score); return 0;
34 배열포인터 (2 차 ) 2 차원배열포인터 2 차배열을가리키는포인터 imsi[0][0] imsi[0][1] 6 3 0x08047c60 0x08047c64 imsi[1][0] 9 0x08047c68 imsi[1][1] 1 0x08047c6c imsi[2][0] 7 0x08047c70 imsi[2][1] 2 0x08047c74 2 차원배열포인터변수선언 imsip 0x08047c60 int imsi[3][2]=6, 3, 9, 1, 7, 2; // int imsi[3][2]=6, 3, 9, 1, 7, 2; int (*imsip)[2]; // 배열의요소가 2 개인 2 차배열을가리킨다. imsip=imsi; // imsi[0][0] 의주소를포인터에할당
35 배열포인터 (2 차 ) int imsi[3]=5, 3, 7; int *imsip; imsip=imsi; int imsi[3][2]=6, 3, 9, 1, 7, 2; int (*imsip)[2]; imsip=imsi; 행의주소를나타냄 5 imsi[0] imsi[0] 6 imsi[0][0] 3 imsi[1] 3 imsi[0][1] 7 imsi[2] imsi[1] 9 imsi[1][0] 1 imsi[1][1] imsi[2] 7 imsi[2][0] 2 imsi[2][1] imsip imsip 가가리키는대상 (4bytes) imsip imsip 가가리키는대상 - 행이대상이됨 (8bytes)
36 배열포인터 (2 차 ) imsi - 배열이름 - imsi[3][2] 을대표함 - imsi[0][0], imsi[0][1], imsi[1][0], imsi[1][1], imsi[2][0], imsi[2][1] 를대표함 #include <stdio.h> int main() int imsi[3][2]=6, 3, 9, 1, 7, 2; int (*imsip)[2]; // 배열의요소가 2 개인 2 차배열을가리킨다. imsip=imsi; // imsi[0][0] 의주소를포인터에할당 imsi[0] - 첫번째행을대표함 (2 차배열이아님 ) - imsi[0][0], imsi[0][1] 를대표 printf( imsi = %p\n, imsi); printf( imsi[0] = %p\n, imsi[0]); printf( &imsi[0][0] = %p\n, &imsi[0][0]); return 0; &imsi[0][0] - imsi[0][0] 의주소
37 배열포인터 (2 차 ) #include <stdio.h> int main() int imsi[3][2]=6, 3, 9, 1, 7, 2; int (*imsip)[2]; imsip = imsi; imsip = imsi[0]; imsip = &imsi[0][0]; imsip - 2 차원배열포인터변수 - 2 차배열을가리켜야함 - 배열요소가 2 개인 2 차원배열을가리킴 대상체가다름 => 에러 return 0;
38 배열포인터 (2 차 ) #include <stdio.h> int main() int imsi[3][2]=6, 3, 9, 1, 7, 2; printf( imsi = %d\n, sizeof(imsi)); printf( imsi[0] = %d\n, sizeof(imsi[0])); printf( &imsi[0][0] = %d\n, sizeof(&imsi[0][0])); return 0;
39 배열포인터 (2 차 ) 2 차배열의값 * 가 2 개필요 * 1 개 [] 1 개 : 행의첫번째배열요소의주소획득 * 2 개 [][] 2 개 : 배열요소획득 행의주소를나타냄 imsip imsip + 1 imsip + 2 *imsip *(imsip+1) // imsi // imsi+1 // imsi+2 // imsi[0] : 1행이주소 // imsi[1] **imsip // imsi[0][0] = 6 *(*imsip+1) // imsi[0][1] = 3 *(*(imsip+1)) // imsi[1][0] = 9 *(*(imsip+1)+1) // imsi[1][1] = 1 imsi[0] 6 imsi[0][0] 3 imsi[0][1] imsip+0 == *(imsip+0) *imsip+0 6 imsi[0][0] imsi[1] 9 imsi[1][0] *imsip+1 3 imsi[0][1] 1 imsi[1][1] imsip+1 == *(imsip+1) *imsip+2 9 imsi[1][0] imsi[2] 7 imsi[2][0] *imsip+3 1 imsi[1][1] 2 imsi[2][1] imsip+2 == *(imsip+2) *imsip+4 7 imsi[2][0] imsip *imsip+5 2 imsi[2][1] imsip 가가리키는대상 - 행이대상이됨 (8bytes)
40
41 배열포인터 (2 차 ) #include <stdio.h> #include <stdlib.h> int main() int imsi[3][2]=6,3,9,1,7,2; int (*imsip)[2]; imsip = imsi; printf("&imsi[0][0] = %p\n", &imsi[0][0]); printf("&imsi[0][1] = %p\n", &imsi[0][1]); printf("&imsi[1][0] = %p\n", &imsi[1][0]); printf("&imsi[1][1] = %p\n", &imsi[1][1]); printf("&imsi[2][0] = %p\n", &imsi[2][0]); printf("&imsi[2][1] = %p\n", &imsi[2][1]); printf("\n"); printf("imsip = %p\n", imsip); printf("imsip + 1 = %p\n", imsip + 1); printf("imsip + 2 = %p\n", imsip + 2); printf("\n"); printf("*imsip = %p\n", *imsip); printf("*imsip + 1 = %p\n", *imsip + 1); printf("*imsip + 2 = %p\n", *imsip + 2); printf("*imsip + 3 = %p\n", *imsip + 3); printf("*imsip + 4 = %p\n", *imsip + 4); printf("*imsip + 5 = %p\n", *imsip + 5); printf("\n"); printf("*(imsip+0) = %p\n", *(imsip+0)); printf("*(imsip+1) = %p\n", *(imsip+1)); printf("*(imsip+2) = %p\n", *(imsip+2)); printf("\n"); printf("**imsip = %d\n", **imsip); printf("*(*imsip + 1) = %d\n", *(*imsip +1)); printf("*(*imsip + 2) = %d\n", *(*imsip +2)); printf("*(*imsip + 3) = %d\n", *(*imsip +3)); printf("*(*imsip + 4) = %d\n", *(*imsip +4)); printf("*(*imsip + 5) = %d\n", *(*imsip +5)); printf("\n"); return 0;
42 문자열포인터변수 ( 문자열선언 ) 문자열과포인터변수 문자열이저장된곳의첫번째문자의위치를가리킴 sungkyul 중에서 s 가저장된곳의주소를 string 에할당 string 0x08047c60 char *string; s 0x08047c60 string = sungkyul ; u 0x08047c64 n 0x08047c68 ( 문자출력 ) g 0x08047c6c k 0x08047c70 printf( %c\n, *(string+1)); ( 출력 : u ) y 0x08047c64 ( 문자열출력 ) u l 0x08047c68 0x08047c6c printf( %s\n, string); ( 출력 : sungkyul ) \0 0x08047c70 %s : \0 가나올때까지화면에출력하는변환문자
43 문자열선언 #include <stdio.h> int main() char *imsip; char imsi; imsi = p ; imsi = p ; imsip = p ; imsip = p ;? 개념파악문제 - 문자와포인터 - 문자열과포인터 return 0; 문자열 ( a ) 을문자형변수 (imsi) 에저장 ( \0 ) - (X) 문자열 ( a ) 을메모리어딘가에저장되고, 저장된주소를 imsip 에할당
44 문자열선언 #include <stdio.h> int main() p203 char *string; string = sungkyul ; printf( %c\n, *(string+0)); printf( %c\n, *(string+1)); printf( %c\n, *(string+2)); printf( %s\n, string); printf( %s\n, string+1); printf( %s\n, string+3); return 0;
45 문자열선언 p204 #include <stdio.h> int main() int i; char *string; string = sungkyul ; for(i=0; *string!= \0 ;i++, string++) printf( 자리수 : %d, 문자 : %c\n, i, *string); return 0;
46 문자열선언 문자열과배열 char arrstr[]= sungkyul ; 최기화과정에서컴파일러가필요한만큼메모리할당 char name[3][10]; strcpy(name[0], pyo ); strcpy(name[1], wol ); strcpy(name[2], seong ); s u 0x08047c60 0x08047c64 name[0] 0 번째행 메모리낭비 n 0x08047c68 p y o \0 \0 \0 \0 \0 \0 \0 g k 0x08047c6c 0x08047c70 name[1] 1 번째행 메모리낭비 y 0x08047c64 w o l \0 \0 \0 \0 \0 \0 \0 u 0x08047c68 l \0 0x08047c6c 0x08047c70 name[2] 2번째행메모리낭비 s e o n g \0 \0 \0 \0 \0
47 2 중포인터 2 중포인터 포인터가포인터를가리킴 선언 : * 2 개사용 char **imsipp; int **dp; int temp; int *imsip; int **dp; temp = 5; imsip = &temp; dp = &imsip; dp 1000 imsip * * temp 5
48 2 중포인터 #include <stdio.h> int main() int temp; int *imsip; int **dp; temp =10; imsip = &temp; dp = &imsip; **dp = 20; printf( temp = %d\n, temp); printf( **dp = %d\n, **dp); return 0;
49 2중포인터 ( 메모리할당 ) 포인터변수에값을할당하는방법 이미존재하는다른변수들이사용하는메모리를공동으로사용 메모리할당함수이용 int i; int row=3, col=10; int **dp; // 메모리할당 dp=(int **)malloc(row*sizeof(int)); for(i=0; i<row; i++) dp[i]=(int *)malloc(col*sizeof(int)); dp[0] dp[1] 0 번째행 1 번째행 // 메모리해제 for(i=0; i<row; i++) free(dp[i]); free(dp); dp[2] 2 번째행
50 포인터배열 포인터배열 포인터를저장할수있는배열 p y 0x08047c04 0x08047c05 char *name[3]; // 포인터배열선언 o 0x08047c06 \0 0x08047c07 name[0] = pyo ; name[1] = wol ; name[2] = seong ; w 0x08047d04 o 0x08047d05 l 0x08047d06 \0 0x08047d07 name[0] name[1] name[2] 0x08047c04 0x08047d04 0x08047e04 s e o 0x08047e04 0x08047e05 0x08047e06 n 0x08047e07 g 0x08047e07 \0
51 포인터배열과 2 중포인터 포인터배열과 2 중포인터 0x08047c00 char *imsip[3], **imsipp; p y o \0 imsip[0] = pyo ; imsip[1] = wol ; imsip[2] = seong ; imsip[0] 0x08047c00 0x08047d00 w o l \0 imsipp = imsip; imsip[1] imsip[2] 0x08047d00 0x08047e00 0x08047e00 s e o n g \0 imsipp 0x
52 포인터배열과 2 중포인터 #include <stdio.h> int main() char *name[3]; char **dp; dp = name; // 포인터배열선언 printf( dp = %p\n, dp); printf( *dp = %p\n, *dp); printf( *dp의값 = %s\n, *dp); printf( *(dp+1) = %s\n, *(dp+1)); printf( **dp = %c\n, **dp); printf( **(dp+1) = %c\n, **(dp+1)); name[0] = pyo ; name[1] = wol ; name[2] = seong ; return 0; printf( name[0] = %p\n, name[0]); printf( &name[0] = %p\n, &name[0]); printf( name[0] = %s\n, name[0]);
53 주소값에의한함수호출 함수의리턴값 1개 예 ) return 0 많은양의데이터를리턴하기원하는경우 포인터이용 배열선언시주의할점 연속된메모리공간차지 프로그램종료때까지메모리차지 항상시작주소로부터이동한후메모리접근하는방식사용
54 주소값에의한함수호출 오름차순정렬 (bubble sort) 9_4.c (p211) #include <stdio.h> void bubble(int *data, int n); void swap(int *before, int *after); int main() int i, int *data; data=(int *)malloc(sizeof(int)*10); // 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 를 data 에 bubble(data, 10); for(i=0; i<10; i++) printf( %d, data[i]); free(data); return 0; void bubble(int *data, int n) int i, j; for(i=0; i<n-1; i++) for(j=n-1; j>i; j--) swap(&data[j-1], &data[j]); void swap(int *before, int *after) int temp; temp = *before; *before = *after; *after = temp;
55 주소값에의한함수호출 9_6.c (p219) #include <stdio.h> #include <stdlib.h> int **memory_alloc(int **memory, int row, int col); void data_alloc(int **data, int row, int col); void Average(int **data, float *avg, int row, int col); int main() int i, j, num, class, **score, result=0; float avg[3]=0; score=memory_alloc(score, 3, 35); data_alloc(score, 3, 35); Average(score, avg, 3, 35); int **memory_alloc(int **memory, int row, int col) int i, j; memory = (int **)malloc(sizeof(int)*row); for(i=0; i<row; i++) memory[i] = (int *)malloc(sizeof(int)*col); return memory; void data_alloc(int **data, int row, int col). for(i=0; i<3; i++) printf( average of class %d=%f \n, i+1, avag[i]); return 0; void Average(int **data, float *avg, int row, int col).
56 함수포인터 #include <stdio.h> int add(int one, int two); int main() int one, two, result; int *imsifp(int, int); imsifp = add; // 정수형매개변수 2 개를갖는함수를가리키기위해함수포인터선언 // 함수포인터에 add 함수의주소저장 scanf( %d, &one); scanf( %d, &two); result = imsifp(one, two); // 함수포인터를통해 add 함수호출 printf( result = %d\n, result); return 0;
57 연습문제 꼭! 풀어보세요..
슬라이드 1
-Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역
More informationPowerPoint 프레젠테이션
System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소
More informationMicrosoft PowerPoint - ch07 - 포인터 pm0415
2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자
More informationuntitled
int i = 10; char c = 69; float f = 12.3; int i = 10; char c = 69; float f = 12.3; printf("i : %u\n", &i); // i printf("c : %u\n", &c); // c printf("f : %u\n", &f); // f return 0; i : 1245024 c : 1245015
More information학습목차 2.1 다차원배열이란 차원배열의주소와값의참조
- Part2- 제 2 장다차원배열이란무엇인가 학습목차 2.1 다차원배열이란 2. 2 2 차원배열의주소와값의참조 2.1 다차원배열이란 2.1 다차원배열이란 (1/14) 다차원배열 : 2 차원이상의배열을의미 1 차원배열과다차원배열의비교 1 차원배열 int array [12] 행 2 차원배열 int array [4][3] 행 열 3 차원배열 int array [2][2][3]
More informationPowerPoint 프레젠테이션
Chapter 10 포인터 01 포인터의기본 02 인자전달방법 03 포인터와배열 04 포인터와문자열 변수의주소를저장하는포인터에대해알아본다. 함수의인자를값과주소로전달하는방법을알아본다. 포인터와배열의관계를알아본다. 포인터와문자열의관계를알아본다. 1.1 포인터선언 포인터선언방법 자료형 * 변수명 ; int * ptr; * 연산자가하나이면 1 차원포인터 1 차원포인터는일반변수의주소를값으로가짐
More informationMicrosoft PowerPoint - chap06-2pointer.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.
More information11장 포인터
누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리
More information목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2
제 8 장. 포인터 목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 포인터의개요 포인터란? 주소를변수로다루기위한주소변수 메모리의기억공간을변수로써사용하는것 포인터변수란데이터변수가저장되는주소의값을 변수로취급하기위한변수 C 3 포인터의개요 포인터변수및초기화 * 변수데이터의데이터형과같은데이터형을포인터 변수의데이터형으로선언 일반변수와포인터변수를구별하기위해
More information제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.
제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 이중포인터란무엇인가? 포인터배열 함수포인터 다차원배열과포인터 void 포인터 포인터는다양한용도로유용하게활용될수있습니다. 2 이중포인터
More information11장 포인터
Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함
More informationMicrosoft PowerPoint - chap11-포인터의활용.pptx
#include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 포인터를 사용하는 다양한 방법에
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 13. 포인터와배열! 함께이해하기 2013.10.02. 오병우 컴퓨터공학과 13-1 포인터와배열의관계 Programming in C, 정재은저, 사이텍미디어. 9 장참조 ( 교재의 13-1 은읽지말것 ) 배열이름의정체 배열이름은 Compile 시의 Symbol 로서첫번째요소의주소값을나타낸다. Symbol 로서컴파일시에만유효함 실행시에는메모리에잡히지않음
More information[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi
2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,
More informationA Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning
C Programming Practice (II) Contents 배열 문자와문자열 구조체 포인터와메모리관리 구조체 2/17 배열 (Array) (1/2) 배열 동일한자료형을가지고있으며같은이름으로참조되는변수들의집합 배열의크기는반드시상수이어야한다. type var_name[size]; 예 ) int myarray[5] 배열의원소는원소의번호를 0 부터시작하는색인을사용
More information이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2
제 17 장동적메모리와연결리스트 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다.
More information<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>
연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.
More informationMicrosoft PowerPoint - 제11장 포인터(강의)
쉽게풀어쓴 C 언어 Express 제 11 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 1003 1004 1005 영화관 1002 1006 1001 포인터 (pointer) 1007 메모리의구조
More information1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문
1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문 1. 표준입출력 표준입출력 입력 : 키보드, scanf 함수 출력 : 모니터, printf 함수문제 : 정수값 2개를입력받고두값사이의값들을더하여출력하라. #include int main(void) int Num1, Num2; int
More informationABC 6장
8 장포인터 김명호 내용 포인터소개 주소연산자 & 포인터변수 역참조연산자 * void 포인터 포인터연산 함수와포인터 메모리사상함수 동적메모리할당 포인터배열 const, restrict 함수포인터 1 포인터 지금까지할당받은메모리공간은변수이름으로접근했었음 예 int a, b, c; a = b + c; // a, b, c 를위한메모리할당 // a, b, c 이름으로메모리접근
More information목차 배열의개요 배열사용하기 다차원배열 배열을이용한문자열다루기 실무응용예제 C 2
제 7 장. 배열 목차 배열의개요 배열사용하기 다차원배열 배열을이용한문자열다루기 실무응용예제 C 2 배열의개요 배열 (array) 의정의 같은데이터형을가지는여러개의변수를하나의배열명으로공유 기억공간을순차적으로할당받아사용하는것 [ 7.1] C 3 배열의개요 배열 (array) 의필요성 같은데이터형의여러개의변수간결하게선언 기억공간을순차적으로변수의값들을저장, 관리
More informationMicrosoft PowerPoint - chap10-함수의활용.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 중 값에 의한 전달 방법과
More informationMicrosoft PowerPoint - 제11장 포인터
쉽게풀어쓴 C 언어 Express 제 11 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 1003 1004 1005 영화관 1002 1006 1001 포인터 (pointer) 1007 메모리의구조
More information<4D F736F F F696E74202D20C1A63134C0E520C6F7C0CEC5CD5FC8B0BFEB>
쉽게풀어쓴 C 언어 Express 제 14 장포인터활용 이중포인터 이중포인터 (double pointer) : 포인터를가리키는포인터 int i = 10; int *p = &i; int **q = &p; // i 는 int 형변수 // p 는 i 를가리키는포인터 // q 는포인터 p 를가리키는이중포인터 이중포인터 이중포인터의해석 이중포인터 // 이중포인터프로그램
More informationMicrosoft PowerPoint - ch07 - 포인터 pm0415
함수의인수 (argument) 전달방법 C 에서함수의인수전달방법 값에의한호출 (call-by-value): 기본적인방법 포인터에의한호출 (call-by-pointer): 포인터이용 참조에의한호출 (call-by-reference): 참조 (reference) 이용 7-35 값에의한호출 (call-by-value) 함수호출시에변수의값을함수에복사본으로전달 복사본이전달되며,
More informationch15
쉽게풀어쓴 C 언어 Express 제 14 장포인터활용 C Express 이중포인터 이중포인터 (double pointer) : 포인터를가리키는포인터 int i = 10; int *p = &i; int **q = &p; // i 는 int 형변수 // p 는 i 를가리키는포인터 // q 는포인터 p 를가리키는이중포인터 이중포인터 이중포인터의해석 이중포인터 //
More informationData Structure
Function & Pointer C- 언어의활용을위한주요기법 (3) Dong Kyue Kim Hanyang University dqkim@hanyang.ac.kr 함수의인자전달 함수의인자전달 함수의인자전달방식 인자전달의기본방식은복사다. 함수호출시전달되는값을매개변수를통해서전달받는데, 이때에값의복사가일어난다. int main(void) int val = 10;
More informationPowerPoint Template
10 포인터 1 주소 Address( 주소 ) 메모리에는그메모리의저장장소의위치를나타내는주소값 주소 (address) 는 1 바이트마다 1 씩증가하도록메모리에는연속적인번호가구성 2 주소연산자 & & 변수 변수의주소값을알아내려면변수앞에주소연산자 & (ampersand) 를이용 주소값이용장단점 주소값을이용하면보다편리하고융통성있는프로그램이가능 그러나복잡하고어려운단점
More informationMicrosoft PowerPoint - chap06-1Array.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-1 참고자료 배열 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 배열의선언과사용 같은형태의자료형이많이필요할때배열을사용하면효과적이다. 배열의선언 배열의사용 배열과반복문 배열의초기화 유연성있게배열다루기 한빛미디어
More informationMicrosoft PowerPoint - chap-11.pptx
쉽게풀어쓴 C 언어 Express 제 11 장포인터 컴퓨터프로그래밍기초 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 컴퓨터프로그래밍기초 2 포인터란? 포인터 (pointer): 주소를가지고있는변수 컴퓨터프로그래밍기초 3 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다.
More information<4D F736F F F696E74202D20C1A63137C0E520B5BFC0FBB8DEB8F0B8AEBFCD20BFACB0E1B8AEBDBAC6AE>
쉽게풀어쓴 C 언어 Express 제 17 장동적메모리와연결리스트 이번장에서학습할내용 동적메모리할당의이해 동적메모리할당관련함수 연결리스트 동적메모리할당에대한개념을이해하고응용으로연결리스트를학습합니다. 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것
More information3. 1 포인터란 3. 2 포인터변수의선언과사용 3. 3 다차원포인터변수의선언과사용 3. 4 주소의가감산 3. 5 함수포인터
- Part2-3 3. 1 포인터란 3. 2 포인터변수의선언과사용 3. 3 다차원포인터변수의선언과사용 3. 4 주소의가감산 3. 5 함수포인터 3.1 포인터란 ü ü ü. ü. ü. ü ( ) ? 3.1 ü. ü C ( ).? ü ü PART2-4 ü ( ) PART3-4 3.2 포인터변수의선언과사용 3.2 포인터 변수의 선언과 사용 (1/8) 포인터 변수의
More information제 11 장포인터 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.
제 11 장포인터 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습합니다.
More informationMicrosoft PowerPoint - chap02-C프로그램시작하기.pptx
#include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의
More information8장. 포인터
2019-1 st 프로그래밍입문 (1) 8 장포인터 박종혁교수 서울과학기술대학교컴퓨터공학과 UCS Lab Tel: 970-6702 Email: jhpark1@seoultechackr 목차 포인터의기본 포인터의개념 포인터의선언및초기화 포인터의사용 포인터의용도 포인터사용시주의사항 참조에의한호출 배열과포인터의관계 calloc() 과 malloc() 을이용한동적메모리할당
More informationC 언어 프로그래밊 과제 풀이
과제풀이 (1) 홀수 / 짝수판정 (1) /* 20094123 홍길동 20100324 */ /* even_or_odd.c */ /* 정수를입력받아홀수인지짝수인지판정하는프로그램 */ int number; printf(" 정수를입력하시오 => "); scanf("%d", &number); 확인 주석문 가필요한이유 printf 와 scanf 쌍
More informationMicrosoft PowerPoint - 09_C_Language_Pointer_Advanced
C Language 포인터응용 Doo-ok Seo clickseo@gmail.com http:// 목 차 다양한포인터 2 차원배열과포인터 동적메모리할당 main() 함수의인자활용 2 다양한포인터 다양한포인터 포인터의포인터 포인터배열 함수포인터 2차원배열과포인터 동적메모리할당 main() 함수의인자활용 3 포인터의포인터 포인터에대한포인터 다루는대상체가포인터인포인터형변수
More information< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>
Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr 강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법
More information<4D F736F F F696E74202D20C1A63132B0AD20B5BFC0FB20B8DEB8F0B8AEC7D2B4E7>
제14장 동적 메모리 할당 Dynamic Allocation void * malloc(sizeof(char)*256) void * calloc(sizeof(char), 256) void * realloc(void *, size_t); Self-Referece NODE struct selfref { int n; struct selfref *next; }; Linked
More informationMicrosoft PowerPoint - 03_(C_Programming)_(Korean)_Pointers
C Programming 포인터 (Pointers) Seo, Doo-Ok Clickseo.com clickseo@gmail.com 목 차 포인터의이해 다양한포인터 2 포인터의이해 포인터의이해 포인터변수선언및초기화 포인터연산 다양한포인터 3 주소연산자 ( & ) 포인터의이해 (1/4) 변수와배열원소에만적용한다. 산술식이나상수에는주소연산자를사용할수없다. 레지스터변수또한주소연산자를사용할수없다.
More informationMicrosoft PowerPoint - Chapter_08.pptx
프로그래밍 1 1 Chapter 8. Pointers May, 2016 Dept. of software Dankook University http://embedded.dankook.ac.kr/~baeksj 포인터의개념 (1/6) 2 포인터란 : 다른객체를가리키는변수 객체의메모리주소를저장하는변수 기호적방식 (symbolic way) 으로주소사용 포인터와관련된연산자
More information설계란 무엇인가?
금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 5 강. 배열, 포인터, 참조목차 배열 포인터 C++ 메모리구조 주소연산자 포인터 포인터연산 배열과포인터 메모리동적할당 문자열 참조 1 /20 5 강. 배열, 포인터, 참조배열 배열 같은타입의변수여러개를하나의변수명으로처리 int Ary[10]; 총 10 개의변수 : Ary[0]~Ary[9]
More informationuntitled
while do-while for break continue while( ) ; #include 0 i int main(void) int meter; int i = 0; while(i < 3) meter = i * 1609; printf("%d %d \n", i, meter); i++; return 0; i i< 3 () 0 (1)
More informationOCW_C언어 기초
초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향
More informationPoison 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
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 Example 3.1 Files 3.2 Source code 3.3 Exploit flow
More informationPowerPoint 프레젠테이션
오픈소스소프트웨어개발입문 (CP33992) 포인터 부산대학교공과대학정보컴퓨터공학부 학습목표 포인터선언과간접참조를통한포인터사용방법을알수있다. 함수의인수전달에서포인터의역할및사용방법을알수있다. 포인터를통한배열원소의참조방법에대해알수있다. 포인터의가감연산을통한다양한활용법을알수있다. 포인터를이용한문자열처리에대해알수있다. void 포인터, 함수포인터의사용방법을알수있다.
More information설계란 무엇인가?
금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,
More information0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4
Introduction to software design 2012-1 Final 2012.06.13 16:00-18:00 Student ID: Name: - 1 - 0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x
More informationMicrosoft PowerPoint - Chapter14_17.pptx
Computer Engineering g Programming g 2 - 제 17 장동적메모리와연결리스트 - 제 14 장포인터활용 Lecturer: JUNBEOM YOO jbyoo@konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 동적할당메모리 연결리스트 이중포인터 포인터배열 다차원배열과포인터 main
More informationMicrosoft PowerPoint - Lesson14.pptx
2008 Spring Computer Engineering g Programming g 1 Lesson 14 - 제 17 장동적메모리와연결리스트 - 제14 장포인터활용 Lecturer: JUNBEOM YOO jbyoo@konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 동적할당메모리 연결리스트 이중포인터
More informationMicrosoft PowerPoint - Lesson14.pptx
2009 Spring Computer Engineering g Programming g 1 Lesson 14 - 제 17 장동적메모리와연결리스트 - 제14 장포인터활용 Lecturer: JUNBEOM YOO jbyoo@konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 동적할당메모리 연결리스트 이중포인터
More informationInfinity(∞) Strategy
반복제어 표월성 passwd74@cherub.sungkyul.edu 개요 for() 문 break문과 continue문 while문 do-while문 for() 문 for() 문형식 for( 표현식1; 표현식2; 표현식3) 여러문장들 ; 표현식 1 : 초기화 (1 번만수행 ) 표현식 2 : 반복문수행조건 ( 없으면무한반복 ) 표현식 3 : 반복문수행횟수 for()
More informationKNK_C_05_Pointers_Arrays_structures_summary_v02
Pointers and Arrays Structures adopted from KNK C Programming : A Modern Approach 요약 2 Pointers and Arrays 3 배열의주소 #include int main(){ int c[] = {1, 2, 3, 4}; printf("c\t%p\n", c); printf("&c\t%p\n",
More information61 62 63 64 234 235 p r i n t f ( % 5 d :, i+1); g e t s ( s t u d e n t _ n a m e [ i ] ) ; if (student_name[i][0] == \ 0 ) i = MAX; p r i n t f (\ n :\ n ); 6 1 for (i = 0; student_name[i][0]!= \ 0&&
More informationMicrosoft PowerPoint - chap03-변수와데이터형.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num %d\n", num); return 0; } 1 학습목표 의 개념에 대해 알아본다.
More information02장.배열과 클래스
---------------- DATA STRUCTURES USING C ---------------- CHAPTER 배열과구조체 1/20 많은자료의처리? 배열 (array), 구조체 (struct) 성적처리프로그램에서 45 명의성적을저장하는방법 주소록프로그램에서친구들의다양한정보 ( 이름, 전화번호, 주소, 이메일등 ) 를통합하여저장하는방법 홍길동 이름 :
More informationMicrosoft PowerPoint - C_9장 포인터 pptx
C 프로그래밍및실습 9. 포인터 세종대학교 목차 1) 포인터란? 2) 배열과포인터 3) 포인터연산 4) 함수와포인터 5) * void 포인터 6) * 함수포인터 2 1) 포인터란? 메모리 프로그램이실행되기위해필요한정보 ( 값 ) 을저장하는공간 1 byte (8 bits) 단위로물리주소가부여되어있음 개념적으로, 메모리는일렬로연속되어있는크기가 1byte 인방들의모음이라고볼수있음
More information문서의 제목 나눔명조R, 40pt
이문서는나눔글꼴로작성되었습니다. 설치하기 11차시 : 함수동적메모리할당다차원배열 프로그래밍및실험 제 11주 동국대학교조영석 6.6 함수인자로써의배열 - 함수정의에서배열로선언된형식매개변수는 pointer임. - 함수의인자로배열이전달되면배열의기본주소가 ( 배열의내용이아님 ) call-by-value로전달됨. - 배열원소는복사되지않음. 2 ( 예 ) #include
More informationuntitled
if( ) ; if( sales > 2000 ) bonus = 200; if( score >= 60 ) printf(".\n"); if( height >= 130 && age >= 10 ) printf(".\n"); if ( temperature < 0 ) printf(".\n"); // printf(" %.\n \n", temperature); // if(
More informationPowerPoint 프레젠테이션
Chapter 08 함수 01 함수의개요 02 함수사용하기 03 함수와배열 04 재귀함수 함수의필요성을인식한다. 함수를정의, 선언, 호출하는방법을알아본다. 배열을함수의인자로전달하는방법과사용시장점을알아본다. 재귀호출로해결할수있는문제의특징과해결방법을알아본다. 1.1 함수의정의와기능 함수 (function) 특별한기능을수행하는것 여러가지함수의예 Page 4 1.2
More informationMicrosoft PowerPoint - chap06-5 [호환 모드]
2011-1 학기프로그래밍입문 (1) chapter 06-5 참고자료 변수의영역과데이터의전달 박종혁 Tel: 970-6702 Email: jhpark1@seoultech.ac.kr h k 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- ehanbit.net 자동변수 지금까지하나의함수안에서선언한변수는자동변수이다. 사용범위는하나의함수내부이다. 생존기간은함수가호출되어실행되는동안이다.
More informationMicrosoft PowerPoint - chap12-고급기능.pptx
#include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 가 제공하는 매크로 상수와 매크로
More informationMicrosoft PowerPoint - chap13-입출력라이브러리.pptx
#include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 스트림의 기본 개념을 알아보고,
More informationMicrosoft PowerPoint - chap06-8 [호환 모드]
2011-1 학기프로그래밍입문 (1) 참고자료 chap 6-8. 메모리동적할당 박종혁 Tel: 970-6702 Email: jhpark1@seoultech.ac.kr h k 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- ehanbit.net 동적할당의필요성 프로그램을작성하는단계에서필요한기억공간의크기를결정하는 것은정적할당이다. - 변수나배열의선언
More information1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 #define _CRT_SECURE_NO_WARNINGS #include #include main() { char ch; printf(" 문자 1개를입력하시오 : "); scanf("%c", &ch); if (isalpha(ch))
More informationPowerPoint 프레젠테이션
KeyPad Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 에는 16 개의 Tack Switch 를사용하여 4 행 4 열의 Keypad 가장착 4x4 Keypad 2 KeyPad 를제어하기위하여 FPGA 내부에 KeyPad controller 가구현 KeyPad controller 16bit 로구성된
More informationMicrosoft PowerPoint - chap06-8.ppt
2010-1 학기프로그래밍입문 (1) 참고자료 chap 6-8. 메모리동적할당 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 동적할당의필요성 프로그램을작성하는단계에서필요한기억공간의크기를결정하는것은정적할당이다. - 변수나배열의선언 프로그램의실행중에입력되는데이터에맞게기억공간을확보해야할때는동적할당이필요하다.
More information슬라이드 1
Array, Structure, and Pointer 2019 SANGJI University Kwang-Man Ko () 배열 (array) 이란? 같은형의변수를여러개만드는경우에사용 int A0, A1, A2, A3,,A9; int A[10]; 0 1 2 3 4 5 6 7 8 9 반복코드등에서배열을사용하면효율적인프로그래밍이가능 예 ) 최대값을구하는프로그램
More informationMicrosoft PowerPoint - Chapter_09.pptx
프로그래밍 1 1 Chapter 9. Structures May, 2016 Dept. of software Dankook University http://embedded.dankook.ac.kr/~baeksj 구조체의개념 (1/4) 2 (0,0) 구조체 : 다양한종류의데이터로구성된사용자정의데이터타입 복잡한자료를다루는것을편하게해줌 예 #1: 정수로이루어진 x,
More informationMicrosoft PowerPoint - Chapter_04.pptx
프로그래밍 1 1 Chapter 4. Constant and Basic Data Types April, 2016 Dept. of software Dankook University http://embedded.dankook.ac.kr/~baeksj 이장의강의목표 2 기본자료형문자표현방식과문자자료형상수자료형변환 기본자료형 (1/8) 3 변수 (Variables)
More information중간고사
중간고사 예제 1 사용자로부터받은두개의숫자 x, y 중에서큰수를찾는알고리즘을의사코드로작성하시오. Step 1: Input x, y Step 2: if (x > y) then MAX
More informationPowerPoint Presentation
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을작성하면서 C 프로그램의구성요소에대하여알아본다.
More informationOCW_C언어 기초
초보프로그래머를위한 C 언어기초 2 장 : C 프로그램시작하기 2012 년 이은주 학습목표 을작성하면서 C 프로그램의구성요소 주석 (comment) 이란무엇인지알아보고, 주석을만드는방법 함수란무엇인지알아보고, C 프로그램에반드시필요한 main 함수 C 프로그램에서출력에사용되는 printf 함수 변수의개념과변수의값을입력받는데사용되는 scanf 함수 2 목차 프로그램코드
More informationMicrosoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600
균형이진탐색트리 -VL Tree delson, Velskii, Landis에의해 1962년에제안됨 VL trees are balanced n VL Tree is a binary search tree such that for every internal node v of T, the heights of the children of v can differ by at
More informationData Structure
Array and Pointer C- 언어의활용을위한주요기법 (2) Dong Kyue Kim Hanyang University dqkim@hanyang.ac.kr 배열 배열 (1/2) 배열 유도형자료유형의하나로기본자료유형을변형하여만들어진다. 동일한자료유형을가지는여러변수의집합 배열을구성하는데이터들을배열원소 (Element) 라고한다. 배열은하나의이름을공유 배열원소는변수와
More information비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2
비트연산자 1 1 비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 진수법! 2, 10, 16, 8! 2 : 0~1 ( )! 10 : 0~9 ( )! 16 : 0~9, 9 a, b,
More informationBMP 파일 처리
BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)
More informationJAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각
JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.
More informationJAVA PROGRAMMING 실습 02. 표준 입출력
자바의기본구조? class HelloJava{ public static void main(string argv[]){ system.out.println( hello,java ~ ){ } } # 하나하나뜯어살펴봅시다! public class HelloJava{ 클래스정의 public static void main(string[] args){ System.out.println(
More information슬라이드 1
정적메모리할당 (Static memory allocation) 일반적으로프로그램의실행에필요한메모리 ( 변수, 배열, 객체등 ) 는컴파일과정에서결정되고, 실행파일이메모리에로드될때할당되며, 종료후에반환됨 동적메모리할당 (Dynamic memory allocation) 프로그램의실행중에필요한메모리를할당받아사용하고, 사용이끝나면반환함 - 메모리를프로그램이직접관리해야함
More information歯9장.PDF
9 Hello!! C printf() scanf() getchar() putchar() gets() puts() fopen() fclose() fprintf() fscant() fgetc() fputs() fgets() gputs() fread() fwrite() fseek() ftell() I/O 2 (stream) C (text stream) : `/n'
More information6.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
GEN1031 Computer Programming Chapter 6 Pointer 포인터 Kichun Lee Department of Industrial Engineering Hanyang Univesity 1 6.1 Addresses and Pointers Recall memory concepts from Ch2 ch6_testbasicpointer.c
More informationMicrosoft PowerPoint - [2009] 02.pptx
원시데이터유형과연산 원시데이터유형과연산 원시데이터유형과연산 숫자데이터유형 - 숫자데이터유형 원시데이터유형과연산 표준입출력함수 - printf 문 가장기본적인출력함수. (stdio.h) 문법 ) printf( Test printf. a = %d \n, a); printf( %d, %f, %c \n, a, b, c); #include #include
More informationPowerPoint Template
18 동적할당과고급처리 인터넷정보과 1 2/19 동적할당 목적 다음과같은일반변수의선언과사용은변수를정적 (static) 으로사용 int a = 10; 메모리사용예측이부정확한경우는충분한메모리를미리확보해야하는것은비효율 동적 (dynamic) 메모리할당 (Memory Allocation) 동적인메모리할당을위해서는함수 malloc() 을이용, 메모리공간을확보 함수 malloc()
More information4. 1 포인터와 1 차원배열 4. 2 포인터와 2 차원배열 4. 3 포인터배열 4. 4 포인터와문자그리고포인터와문자열
- Part2-4 4. 1 포인터와 1 차원배열 4. 2 포인터와 2 차원배열 4. 3 포인터배열 4. 4 포인터와문자그리고포인터와문자열 4.1 포인터와 1 차원배열 4.1 1 (1/16)- - - [4-1.c ] #include int main(void) { int array[3]={10, 20, 30}; } prind("%x %x %x
More informationMicrosoft PowerPoint - 제3장-배열.pptx
제 3 강. 배열 (Array) 자료구조 1 제 3 강. 배열자료구조 학습목차 1. 배열의개념 2. 구조체 3. 희소 (Sparce) 행렬 4. 다차원배열의저장 2 1. 배열의개념 리스트는일상생활에서가장많이쓰이는자료형태이다. 예 ) 학생의명단, 은행거래고객명단, 월별판매액등 배열 (Array) 은컴퓨터언어에서리스트를저장하는데이터타입이다. 리스트와배열은같은개념이지만다른차원의용어이다.
More informationPowerPoint 프레젠테이션
Chapter 10 배열과포인터... 1. 스택 2. 메모리와주소 3. 포인터 4. 배열과포인터의관계 1. 스택 스택의이해 한쪽끝이막혀있는구조 가장먼저들어간것이가장나중에나옴 : LIFO(Last In First Out) 용어 top( 탑 ) : 가장마지막에들어간데이터의위치를가리킴 push( 푸쉬 ) : 데이터를넣는것 pop( 팝 ) : 데이터를빼는것 1. 스택
More informationMicrosoft PowerPoint - 7장 배열 pptx
C 프로그래밍및실습 7. 배열 세종대학교 목차 1) 배열이란? 2) 배열초기화 3) 배열응용 4) 실수배열과문자배열 5) 다차원배열 2 1) 배열이란? 변수를여러개만들어야하는상황을생각해보자. 사용자로부터 5개의정수를입력받아변수에저장하고, 이값을출력하는프로그램은다음과같이작성할수있다. 하지만, 정수가 100개라면? 배열을사용하여해결 int x0, x1, x2,
More information구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을
(structures) 구조체정의 구조체선언및초기화 구조체배열 구조체포인터 구조체배열과포인터 구조체와함수 중첩된구조체 구조체동적할당 공용체 (union) 1 구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined
More informationMicrosoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt
변수와상수 1 변수란무엇인가? 변수 : 정보 (data) 를저장하는컴퓨터내의특정위치 ( 임시저장공간 ) 메모리, register 메모리주소 101 번지 102 번지 변수의크기에따라 주로 byte 단위 메모리 2 기본적인변수형및변수의크기 변수의크기 해당컴퓨터에서는항상일정 컴퓨터마다다를수있음 short
More informationMicrosoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100
2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack
More informationPowerPoint Presentation
컴퓨터프로그래밍 Computer Programming 08 포인터기초 목차 1. 포인터변수와선언 2. 간접연산자 * 와포인터연산 3. 포인터형변환과다중포인터 컴퓨터프로그래밍 (Computer Programming) - 08 포인터기초 3 1. 포인터변수와선언 주소개념 주소 address 메모리공간은 8비트인 1 바이트마다순차적인고유한번호 메모리주소는저장장소인변수이름과함께기억장소를참조하는또다른방법
More information윤성우의 열혈 TCP/IP 소켓 프로그래밍
C 프로그래밍프로젝트 Chap 22. 구조체와사용자정의자료형 1 2013.10.10. 오병우 컴퓨터공학과 구조체의정의 (Structure) 구조체 하나이상의기본자료형을기반으로사용자정의자료형 (User Defined Data Type) 을만들수있는문법요소 배열 vs. 구조체 배열 : 한가지자료형의집합 구조체 : 여러가지자료형의집합 사용자정의자료형 struct
More informationLab 3. 실습문제 (Single linked list)_해답.hwp
Lab 3. Singly-linked list 의구현 실험실습일시 : 2009. 3. 30. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 5. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Singly-linked list의각함수를구현한다.
More informationMicrosoft PowerPoint - 8ÀÏ°_Æ÷ÀÎÅÍ.ppt
포인터 1 포인터란? 포인터 메모리의주소를가지고있는변수 메모리주소 100번지 101번지 102번지 103번지 int theage (4 byte) 변수의크기에따라 주로 byte 단위 주소연산자 : & 변수의주소를반환 메모리 2 #include list 8.1 int main() using namespace std; unsigned short
More informationMicrosoft PowerPoint - ch08 - 구조체 (structure) am0845
2015-1 프로그래밍언어 8. 구조체 (Structure) 2015 년 4 월 11 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 구조체란무엇인가? 구조체의선언, 초기화, 사용
More informationPowerPoint Presentation
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 변수와상수의개념에대해알아본다.
More informationChapter 4. LISTS
C 언어에서리스트구현 리스트의생성 struct node { int data; struct node *link; ; struct node *ptr = NULL; ptr = (struct node *) malloc(sizeof(struct node)); Self-referential structure NULL: defined in stdio.h(k&r C) or
More informationMicrosoft PowerPoint - 05-chap03-ArrayAndPointer.ppt
배열이란? Chapter. 배열구조체포인터 같은형의변수를여러개만드는경우에사용 int A, A, A, A,, A; int A[]; 4 5 6 반복코드등에서배열을사용하면효율적인프로그래밍이가능 예 ) 최대값을구하는프로그램 : 만약배열이없었다면? tmp=score[]; for(i=;i tmp ) tmp = score[i]; Today...
More information