C#과 C++에서 변수 선언에 사용되는 new는 다른 형식으로 사용된다.
C#의 경우, 선언한 변수를 객체로서 사용할 수 있다.
C#
byte[] a = new byte[3];
위의 경우, a는 3개의 byte형을 갖는 배열의 객체로 선언된다.
그에따라 .length 와 같은 프로퍼티를 접근하여 사용 가능하다.
또한 자동으로 가비지 컬렉터에 의하여 메모리가 해제된다.
C++의 경우는, new 로 특정 배열을 선언시 해당 배열을 할당하고 그것의 주소를 포인터로 반환한다.
따라서 기본적으로 new로 선언한 부분의 앞부분은 포인터여야만 한다.
C++
byte* a = new byte[3];
a는 자동으로 제거되지 않기에 delete [] 를 사용하여 메모리를 해제해줘야 한다.
'SW 개발 공부 > 실수 기록' 카테고리의 다른 글
[Stm32 Project]Debug시 Dynamic Printf가 정상적으로 출력 되지 않을 때 (0) | 2024.11.12 |
---|---|
[Stm32 Project] header 파일에서 선언한 변수가 .c파일 내에서 찾을 수 없는 경우 (1) | 2024.11.11 |
사용자 계정 변경하기 (0) | 2024.09.05 |
[Stm32cube ide] 프로젝트의 파일들이 Liked File로 선언되어 있을 때 프로젝트 복사시 파일 경로를 못 찾는 문제 (0) | 2024.07.22 |
stm32cube ide Dynamic printf 중 변수 optimized out. (0) | 2024.05.29 |