duckracoon   4년 전

c에서는 char arr[80]; 이라고 하면 char type의 80칸짜리 배열이 비어있는채로 선언된거잖아요? 

char arr[80]={0} 이라고 하면 0으로 초기화 한것으로 알고 있고요.

java에서는 char arr[]; 라고하면 배열이 선언된것이고, 여기에 new char[80]; 이라고 해주면 80칸 안에 0으로 

기본 초기화 된다고 하던데 옳게 생각하고 있는건가요? 그렇다면 비어있는 80칸짜리 char 배열은 어떻게 만들어 주어야하는건가요??  

scvhero   4년 전

일단 c에서의 배열이나 용어의 개념도 명확하시지 않으신 것 같습니다.

c에서의 char arr[80];은 비어있는 80칸 배열이 아니라 초기화되지 않은 80칸 배열입니다.

만약 전역 변수로 선언한다면 0으로 초기화되어 있고 지역변수로 선언한다면 쓰레기 값이 들어있는거지 비어있다는 개념은 아닙니다.

scvhero   4년 전

JAVA에서 배열 초기화 오버헤드를 줄이고 싶으시다면 메모리 풀 테크닉이나 jdk.internal.misc.Unsafe.allocateUninitializedArray같은걸 쓰는 방법이 있겠습니다만 개인적으로는 실무 레벨이 아닌 한 크게 신경 쓸 부분은 아니라 생각합니다

댓글을 작성하려면 로그인해야 합니다.