반응형
2차원 배열을 다른 2차원 배열로 복사하는 array_copy(char array1[], char array2[], int size) 함수를 구현하고 테스트하여 보라. 수행 속도를 위하여 배열 첨자 방법 대신에 포인터를 사용하라.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | #include <stdio.h> #define HEIGHT 5 #define WIDTH 10 void print(int array[][WIDTH]); void copy(int array1[][WIDTH],int array2[][WIDTH]); int main(void) { int image1[HEIGHT][WIDTH]={{0,0,0,0,9,0,0,0,0,0}, {1,0,0,9,9,0,0,0,0,0}, {5,0,9,0,9,0,0,0,0,4}, {4,0,0,0,8,0,0,2,0,0}, {3,0,0,0,9,0,0,0,0,8}}; int image2[HEIGHT][WIDTH]={{0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0}}; printf("이미지1 : \n"); print(image1); printf("이미지2 : \n"); print(image2); copy(image1,image2); printf("복사된이미지2 : \n"); print(image2); return 0; } void print(int array[][WIDTH]) { int i,j; for(i=0;i<HEIGHT;i++) {for(j=0;j<WIDTH;j++) { printf("%3d ", array[i][j]); } printf("\n"); } } void copy(int array1[][WIDTH],int array2[][WIDTH]) { int *p1, *endp1; int *p2; p1=&array1[0][0]; p2=&array2[0][0]; endp1=&array1[HEIGHT-1][WIDTH-1]; while(p1<=endp1) { *p2=*p1; p1++;p2++; } } | cs |
반응형
'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글
소스에 대한 질문 답하기 (0) | 2017.01.13 |
---|---|
생명 게임(game of life - John H. Conway) (0) | 2017.01.13 |
디지털 영상 (0) | 2017.01.06 |
학생 성적 평균 구하기 (0) | 2017.01.06 |
내림차순 정렬 (0) | 2017.01.06 |