strlen[] ()차이점이 있나요?...
글쓴이: kldpgk / 작성시간: 월, 2006/05/01 - 4:14오후
,C++에서..
name=new char(strlen(_name)+1);
name=new char[strlen(_name)+1];
이 두개의 차이점이 있나요? 크기 지정이라 책에서는
두번째 []이걸 써주던데..
저는 첨에 []이걸로 써주는걸 몰라서..
()로 고쳐써주었는데 잘 실행이 되더라구요..
배열도 저럴까 하고 int arr[]; 을 int arr();해줬는데 오류가
나더라구여
이유는 ANSI C에서 걸려 그런거 같다는 생각 ..
그래서 저 위에 [strlen...] (strlen...)차이를 알고 싶네요..
차이가 없는건지요?;;..
Forums:
처음 것은 char를
처음 것은 char를 할당한 것이고 두번째는 char 배열을 할당한 것입니다. ()로 했는 데 잘 실행되었다는 건 조금 이상하군요. 컴파일이야 되겠지만...
() 은 초기치 지정입니다.
즉
name = new char(strlen(_name)+1);
는
name = new char;
*name = strlen(_name) + 1;
과 다를 것이 없습니다.
기본생성자로 초기화하면서 객체생성을 한 후 대입을 한다고 볼 수 있죠.
위의 지정된 생성자를 써서 초기화하면서 객체생성을 하는 것은 사용자 정의형일 경우 큰 의미차를 가지지만 기본형일 경우에는 별차이를 갖지는 않습니다.
하지만 typing 수로나 사용자정의형과 동일한 일관성을 보여준다는 의미에서 위의 code 가 바람직하겠죠.
()은 값을
()은 값을 할당
[]배열크기할당
아~~
댓글 달기