std::wstring stdwstr(L"All/0*.*/0Text/0*.TXT/0"); // 슬래시 방향을 뒤집어 보시오.
stdwstr.length()=3
stdwstr.size()=3
으로 나온다는 게 그나마 좀 위안이라고나할까 ㅋㅋ
댓글 4
The run-time system stores the number of objects, n, somewhere where it can be retrieved if you only know the pointer, p. There are two popular techniques that do this. Both these techniques are in use by commercial-grade compilers, both have tradeoffs, and neither is perfect.
의절(aseity314)2012-02-21 11:18
내가 이해하기에는 너무 문법이 어렵당...
의절(aseity314)2012-02-21 11:20
sizeof연산자 자체가 컴파일타임 연산자이고(C의 가변길이 배열에 대고 하는것 제외),또 포인터에다 대고 sizeof하는건 당연히 포인터 크기가 나와야 한다. C의 가변길이배열에 대고 sizeof하는게 아닌 이상은..
ㅋㅋ(221.144)2012-02-22 12:45
sizeof의 기능이 그건데 왜 저렇게 오해를 하는지 모르겠다. 그리고 delete[]나 delete나 free같은것들이 크기를 알도록 하는건 얼마든지 할 수 있는거다. 저 링크해놓은 글에도 있지만, 하부 메모리 할당 함수에서, 블럭 헤더만큼의 크기를 더 잡고, 그 헤더에 할당된 바이트수나 delete[]의 경우 생성된 객체의 수를 기록해두는 방법이 있다. 또 저 글에서는 연관 자료구조를 쓰는 방법도 소개하고 있군. 그리고 위안이 될 사항이 아니라 std::(w)string의 널종료 문자열로부터 생성하는 방법을 사용했으니까 당연히 길이가 3이 나오는거다. TXT\\0 부분까지 모두 포함시키려면 길이까지 모두 손수 주는 생성자를 쓰면 될거다.
The run-time system stores the number of objects, n, somewhere where it can be retrieved if you only know the pointer, p. There are two popular techniques that do this. Both these techniques are in use by commercial-grade compilers, both have tradeoffs, and neither is perfect.
내가 이해하기에는 너무 문법이 어렵당...
sizeof연산자 자체가 컴파일타임 연산자이고(C의 가변길이 배열에 대고 하는것 제외),또 포인터에다 대고 sizeof하는건 당연히 포인터 크기가 나와야 한다. C의 가변길이배열에 대고 sizeof하는게 아닌 이상은..
sizeof의 기능이 그건데 왜 저렇게 오해를 하는지 모르겠다. 그리고 delete[]나 delete나 free같은것들이 크기를 알도록 하는건 얼마든지 할 수 있는거다. 저 링크해놓은 글에도 있지만, 하부 메모리 할당 함수에서, 블럭 헤더만큼의 크기를 더 잡고, 그 헤더에 할당된 바이트수나 delete[]의 경우 생성된 객체의 수를 기록해두는 방법이 있다. 또 저 글에서는 연관 자료구조를 쓰는 방법도 소개하고 있군. 그리고 위안이 될 사항이 아니라 std::(w)string의 널종료 문자열로부터 생성하는 방법을 사용했으니까 당연히 길이가 3이 나오는거다. TXT\\0 부분까지 모두 포함시키려면 길이까지 모두 손수 주는 생성자를 쓰면 될거다.