C언어에서 메모리 동적할당
malloc : heap 영역 메모리 할당
free : heap 영역 메모리 해제
arr = (int*)malloc(sizeof(int));
free(arr);
#include <iostream>
int main()
{
int size;
int* arr;
printf("배열개수: ");
scanf_s("%d", &size);
arr = (int*)malloc(sizeof(int) * size); // 메모리 동적할당
printf("%d개의 숫자를 입력하세요.\n", size);
printf("만들어진 배열 크기: %d\n", sizeof(int) * size);
for (int i = 0;i < size;i++)
{
printf("%d번째 숫자: ", i + 1);
scanf_s("%d", arr + i);
}
for (int i = 0;i < size;i++)
{
printf("%d\n", arr[i]);
printf("%d\n", *(arr + i));
}
free(arr);
return 0;
}
#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;
#pragma warning(disable:4996)
char* MakeStrAdr(int len)
{
char * str = (char*)malloc(sizeof(char) * len);
return str;
}
int main()
{
char * str = MakeStrAdr(30);
strcpy(str, "I am so happy");
cout << str << endl;
free(str);
return 0;
}
C++에서 메모리 동적할당
new : heap 영역 메모리 할당
delete : heap 영역 메모리 해제
#include <iostream>
using namespace std;
int main()
{
int size;
int* arr;
cout << "배열의 개수를 입력하세요: " ;
cin >> size;
//동적 메모리 할당
arr = new int[size];
for (int i = 0;i < size;i++)
{
cout << i + 1 << "번째 숫자: ";
cin >> *(arr + i);
}
for (int i = 0;i < size;i++)
{
cout << *(arr + i) << endl;
}
return 0;
}