나는 콘솔에 요소 주소를 넣고 싶지만 그곳에 문제가있다.배열 요소의 주소를 얻는 방법은 무엇입니까?
cout << &text[0] << endl;
내가 잘못 여기서 뭐하는 거지, 출력이 vaule 인 것 같다?
덕분에
나는 콘솔에 요소 주소를 넣고 싶지만 그곳에 문제가있다.배열 요소의 주소를 얻는 방법은 무엇입니까?
cout << &text[0] << endl;
내가 잘못 여기서 뭐하는 거지, 출력이 vaule 인 것 같다?
덕분에
당신은 IOSTREAMS로 인쇄 void *
로 변환해야합니다, 당신은 안전 주소의 연산자 오버로드 &
-operators 혼동되지 않습니다해야합니다. 즉 :
std::cout << static_cast<void*>(std::addressof(text[0])) << std::endl;
당신은 <memory>
및 <iostream>
뿐만 아니라 최근의 컴파일러가 필요합니다.
업데이트 :이 코드는 당신에게 피연산자의 정적 주소를 제공한다는 참고. 다형성 객체의 기본 참조를 전달하려면 대신 dynamic_cast<void*>(x)
을 사용해야하지만이 경우 가상 함수가있는 다형성 객체 (즉, 가상 함수가있는 객체)의 경우 만 작동하며 실제 동적 객체의 주소를 제공합니다.
캐스트가 필요합니까? –
+1, iostream에 'void *'캐스트가 필요한 이유는 무엇입니까? – JaredPar
@ Jared : iostreams에는'char *'같은 것들에 대한 오버로드가 있습니다. 우리는 그걸 원하지 않을거야. 그렇지? –
그냥 이런 식으로 작업을 수행합니다
printf("%p",text);
당신은
가 텍스트 ''의 정의를 보여 PRINTF도 사용할
stdio.h
이 필요합니다. – unwind정의가 무엇을 의미하는지 확실하지 않습니까? 죄송합니다 – nullVoid
@nullVoid'text'가 변수 – JaredPar