메모리 동적할당
메모리 동적할당의 새로운 키워드 new & delete
C언어에서는 동적할당을 할때 malloc()
과 free()
를 사용하였습니다.
#include <iostream>
#include <stdlib.h>
using namespace std;
char* inputString(int len) {
cout << len << "자 입력 : ";
char* str = (char*)malloc(len);
cin >> str;
return str;
}
int main(void)
{
char* str = inputString(30);
cout << "입력받은 문자열 : " << str << endl;
free(str);
return 0;
}
code
설명
int* ptr = new int
int형 변수 할당
double* arr = new double[3]
길이가 3인 int형 배열 할당
delete
ptr
할당한 ptr변수 소멸
delete[]
arr
할당한 arr배열 소멸
#include <iostream>
#include <cstdlib>
using namespace std;
char* inputString(int len) {
cout << len << "자 입력 : ";
// char* str = (char*)malloc(len);
char* str = new char[len]; // char형 배열 할당
cin >> str;
return str;
}
int main(void)
{
char* str = inputString(30);
cout << "입력받은 문자열 : " << str << endl;
// free(str);
delete[] str; // 배열 소멸
return 0;
}
참고 C++ 에서 C언어 표준함수 사용하기
.h를 빼고 앞에 c를 붙이면됩니다.
C표준
C++표준
#include <stdio.h>
->
#include <cstdio>
#include <stdlib.h>
->
#include <cstdlib>
#include <math.h>
->
#include <cmath>
#include <string.h>
->
#include <cstring>
Last updated