Nami 의 공부방 139

함수 포인터에 대해서 !!!

-------------------------------------------------------------------------------------------- 함수 포인터 사용 1. #include int add(int a, int b) ; int sub(int a, int b); int mul(int a, int b); int main() { int (*compute)(int,int) = &add; printf("%d\n",compute(5,8)); return 0; } compute-> pointer -> 함수 ->인자 가 2개인 -> 리턴형을 int 로 하는 ---------------------------------------------------------------------------..

동적 메모리 할당

(받을형의 포인터)malloc(사이즈) int * a = (int *)malloc(sizeof(int)); malloc은 메모리 할당 이후에 그 공간을 0으로 초기화 해주지 않고 쓰레기 값만 존재한다. 그러므로 memset()을 이용하여 초기화 한다. memset(초기화 대상, sizeof(대상의 형)); 이렇게 하면 할당된 메모리공간은 0으로 초기화 된다. 할당 받을때 초기화 된 함수는 없나요? 있다!! calloc() int * a = (int *)calloc(sizeof(int)); 할당과 동시에 초기화 해서 a로 넘겨준다!! 할당된 메모리가 부족하다면 realloc를 쓰자!!! int *str2 = realloc(할당 받았던 변수, 사이즈); free() 메모리 공간 해체시 필요한 함수이다!!

파일 입.출력 !!

파일을 출력 할때 FILE * fp = fopen("파일이름.파일형식","모드") 모드 설명 r 읽기 전용으로 파일을 연다. 이 모드로 연 파일은 읽을 수만 있으며 데이터를 기록하지는 못한다. 만약 파일이 없을 경우 에러가 리턴된다. w 쓰기 위해 파일을 연다. 이 모드로 연 파일은 쓰기만 가능하며 읽지는 못한다. 도스나 윈도우즈의 파일은 쓰기 전용 속성이 없지만 스트림은 쓰기 전용 상태로 열 수 있다. 파일이 없으면 새로 만들고 이미 존재한다면 기존의 파일은 지워진다. a 추가를 위해 파일을 연다. 추가란 파일의 끝에 다른 정보를 더 써 넣는다는 뜻이다. 이 모드로 연 파일은 오픈 직후에 FP가 파일의 끝으로 이동한다. 파일이 없으면 새로 만든다. r+ 읽고 쓰기가 가능하도록 파일을 연다. 파일이 없을..

구도체 및 함수 인자 값 일 때 메모리상 데이터

#include typedef struct _STRUCT { char a; int b; }STRUCT; int main() { printf("%d\n", sizeof(STRUCT)); } 사이즈 : 8 이유 : 컴퓨터 운영체제가 32비트 일때는 처리를 빠르게 하기 위해서 32비트 단위로 처리하는데 그래서 구도체 안에서 가장 큰 형을 기준으로 메모리 공간을 가지게 된다. #include typedef struct _STRUCT { char a; int b; char c; }STRUCT; int main() { printf("%d\n", sizeof(STRUCT)); } size : 12 이유 : char 가 먼저 와서 4바이트 할당 그리고 int 형이므로 4바이트 할당 char가 다시 와서 4바이트 할당 ..