본문 바로가기
IT/프로그래밍

C언어 본색 파트3 Chapter 4 연습문제 솔루션

by nutrient 2021. 5. 31.
728x90
728x170

 

 

1번

 

2번

#include <stdio.h>
#include <stdlib.h>

void allocate(int i);

void main () 
{
	int i;
	printf("필요한 메모리 공간 : ");
	scanf("%d", &i);
	allocate(i);
}

void allocate(int i) 
{
	//int a[i];
	int* a = (int*)malloc(i);
	printf("%d의 공간을 할당하였습니다. \n", i);
}

 

3번

#include <stdio.h>
#include <stdlib.h>
void main () 
{
	int i, j;
	int* ip = NULL;
	char* cp = NULL;
	float* fp = NULL;

	printf("필요한 메모리 공간 : ");
	scanf("%d", &i);
	printf("저장 데이터 유형 (1)int, (2)char, (3)float : ");
	scanf("%d", &j);

	if (j == 1) {
		//ip = (int*) malloc(i*sizeof(int));
		ip = (int*) calloc(i, sizeof(int));
		printf("메모리 시작 주소 : %d \n", ip);
		printf("할당된 전체 메모리 공간 : %d바이트\n", i*sizeof(int));
	}
	else if (j == 2) {
		//cp = (char*) malloc(i*sizeof(char));
		cp = (char*) calloc(i, sizeof(char));
		printf("메모리 시작 주소 : %d \n", cp);
		printf("할당된 전체 메모리 공간 : %d바이트\n", i*sizeof(char));
	}
	else if (j == 3) {
		//fp = (float*) calloc(i*sizeof(float));
		fp = (float*) calloc(i, sizeof(float));
		printf("메모리 시작 주소 : %d \n", fp);
		printf("할당된 전체 메모리 공간 : %d바이트\n", i*sizeof(float));
	}
	else
		printf("잘못된 입력 \n");
}
728x90
그리드형

댓글