int main(void){
int *pi;
pi = (int *)malloc(sizeof(int)); //int의 사이즈만큼 메모리를 할당하여 pi가 그 주소를 가르키게 함
if(pi == NULL){
printf("동적 메모리 할당에 실패!\n");
exit(1); // 해당 프로그램 종료
}
*pi = 100; // int값을 100을 넣음
printf("%d\n", *pi); //100 출력됨
free(pi); // 메모리에서 할당 해제해줌
return 0;
}
int main(void){
char *pc = NULL;
int i=0;
pc = (char *)malloc(100 * sizeof(char));
// char형을 100개 저장 가능.
// 즉, 배열과 같음.
// 그 배열의 첫 주소를 pc가 가르키고 있음.
if(pc == NULL){
printf("동적 메모리 할당 실패!\n");
exit(1);
}
// pc가 가르키는 포인터를 1씩 증가시키면서 알파벳 삽입해보기
for(i = 0;i<26;i++){
*(pc+i) = 'a'+i;
}
// *(pc + 1) : pc는 배열의 첫 주소이므로, +1을 하면 그 다음 주소, 거기에 *를 하면 그 값
*(pc + i) = 0;
//i=26인 경우이므로, 알파벳 다 넣고 그 다음 주소에 0을 넣음.
//아스키코드 0이므로 이는 NULL을 의미함.
//문자 여러개 +NULL = 문자열
//포인터가 a부터 z까지 넣다가 0(NULL)을 만나니깐 이제 끝인 거라고 인식함
printf("%s\n", pc);
//abcd...z
free(pc);
// 저 주소의 값 다 해지시켜줌
return 0;
}
출처 : 동빈나 유튜브
'AI > c언어' 카테고리의 다른 글
파일 입출력 (2) | 2024.06.16 |
---|---|
구조체, Struct (0) | 2024.06.16 |
명령 프롬프트(cmd)에서 파일 실행하기 (0) | 2024.05.24 |