[C++]동적할당된 배열은 왜 초기화할수 없나요?
차오름
int *p;
p = new int[10];
포인터를 가지고 동적할당을 이용해서 10개의 요소를 넣을수 있는 배열을 만들었습니다..
(이렇게 만드는거 맞죠? 전 이렇게 배웠는데요,,)
그런데 제가 공부하고 있는 자료에는기술적인 이유(?)로 동적으로 할당한 배열을초기화하는것이 안된다고 하던데..
왜 그런지 궁금합니다..
현재 배열 P에는 10개의 요소를 넣을수 있는 공간이 되어 있는데. 그럼 그안에는 초기화되지 않은
쓰레기 값이 들어있다는 것인가요?동적할당으로 만든 배열자체가 초기화되지 않된 상태인가요?
마치 int p[10]; 처럼?동적 할당으로 만든 배열을 초기화 할수 있는 방법이 있다면 어떤 방법이 있나요?
-
도래솔
바드 // ㅎㅎ 그건 잘 모르겠어용. ㅋㅋ
근데.. 초기화할때에는 memset를 사용하면 더 편할것 같습니다. ^_^ -
아서
따로 초기화를 해주지 않는다면 자동적으로는 불가능하군요, 그렇다면 클래스로 배열을 선언해둔다면 그 배열역시 따로 초기화를 위한 작업이 필요한가요?
-
내꺼하자
자바와 다르게 C++ 에서는 동적할당을 해도, 방만 잡아주고 청소는 안해주는 걸로 알고있습니다. 따로 프로그래머가 loop 구문을 이용해서 청소를 해줘야 지요 for (int i =0; i10; i++) p[i] = 0;
-
가욋길
찬// 아마도 그런것 같아요, 제가 궁금한건 뉴를 사용해서 10개짜리 배열을 만들었으면 이게 초기화된 상태인지 아닌지가 우선 궁금하고 만약 초기화가 안된상태라면 초기화를 시킬수 있느냐 없느냐가 궁금합니다. 초기화가 된다면 어떻게 해야 하는건지. 초기화가 안된다면 왜 안된다는건지 궁금해서 올렸습니다.
-
Sona
혹시 초기화 하는것이 안되는것이 아니라..
new int[10]으로 잡는다고 해서, 그 공간이 자동으로 초기화 되지 않는다.. 라는거 아닌가요??