언어/C 25

오랜만에 C언어 복습

영상처리를 위해 C언어를 사용해야 하는데 복습 한번 쓱 합시다. 1 byte = 8 bit 2^8 = 256 이라고 생각하면 편합니당 256*256 = 65536 malloc과 calloc이 있죠 free를 생활화 합시다! 우린 영상처리를 할꺼니까 이진 파이링 되겠네요 file 포인터 사용하는거 잘 봐야합니당 scanf에는 주소 기호 사용하는 것도 잊지 말고여 상대 경로와 절대 경로 잘 지켜야 합니다. 파일에서 데이터를 가지고 온다고 생각하면 편합니다. 파일에 작성한다고 생각하면 됩니당 그럼 실습 하나를 해봐야겠죠 #define _CRT_SECURE_NO_WARNINGS #include #include #include int main() { BITMAPFILEHEADER bmpFile; BITMAPINF..

언어/C 2024.03.12

함수를 가리키는 포인터, 보이드 포인터(void *)

int add(int, int); int main() { int a, b, c, d[20][20]; unsigned int r; void* p; int (*padd)(int,int); padd = &add; scanf("%d", &a); scanf("%d %d", &b, &c); p = &a; printf("%d\n", *((int*) p)); printf("%d", padd(b, c)); } int add(int a, int b) { return a + b; } 우리는 void* 로 p를 만들어 주었다. 그리하여 a의 주소를 p에 집어 넣고 p를 호출할 때 (int *)으로 형을 변경하여 출력해줬다. 함수를 가리키는 포인터는 위와 같이 포인터 하나와 그것이 가지는 변수의 형들을 입력해주면 된다. 그리고..

언어/C 2023.11.17

포인터를 가리키는 포인터

void pswap(int**, int**); int main() { int a, b, c, d; unsigned int r; scanf("%d %d ", &a, &b); int* px = &a, *py= &b; pswap(&px,&py); printf("%d %d", *px,*py); } void pswap(int** x, int** y) { int *tmp = NULL; tmp = *x; *x = *y; *y = tmp; } 음 따로 설명할 만한 것은 없지만 함수에 넘겨주는 &px는 px의 주소를 보내는 것이고 함수 내에선 px의 포인터를 서로 바꿔주는 것이라 바뀐 값이 나온다. ex 1 5 -> 5 1

언어/C 2023.11.17
728x90
728x90