2012-04-04 3 views
-1
int main() 
{ 
char* NamePointer = new char; 


std::cout << "Enter the file you want to edit (MUST BE IN THE PROJECT'S DIRECTORY): "; 
std::cin >> &NamePointer; 

const char* FileName = NamePointer; 
delete &NamePointer; 


return 0; 
} 

이 제목에 나에게 오류를 반환 일치? 이것은 아마도 내가 누락 된 단순한 무언가이지만, 내가 그것을 보았을 때 나는 내 대답을 얻지 못했습니다.Erorr :</p> <pre><code>std::cin >> &NamePointer; </code></pre> <p>어떤 아이디어가 : 없음 운영자는 ">>"이러한 인수

그냥 고쳐 주셔서 고마워! 나는 "& NamePointer"에서 "&"을 꺼냈다.

그래, 방금 c_str()을 사용하여 다른 방법을 발견했습니다. 죄송합니다!

+0

그냥'&'을 제거해도 문제가 해결되지 않았습니다. 아직 해결되지 않았습니다. 내 대답을 확인하십시오. –

답변

3

당신이 있어야합니다

char* NamePointer = new char[MAX_SIZE]; 

과로 dellocate :

std::cin >> NamePointer; 

을 또한, 당신은 아마 당신이 의미 한 문자의 메모리를 할당하는

delete []NamePointer; 

C + +에서이 작업을 수행하는 방법은 문제를 처리하는 std::string을 사용하는 것입니다. 버퍼 오버 플로우의 당신은 char*을 사용하여 얻을 : 여기 연산자의 주소에 대한 필요가

std::string Name; 
std::cin >> Name; 
0

없습니다. 간단히 :

std::cin >> NamePointer; 

내가 발견 한 몇 가지 다른 것들 :

char* NamePointer = new char; 

당신은 아마 하나 개의 문자보다 더 많은 공간을 원한다.

char NamePointer[1024]; 

하는 경우, 당신은 (도 그렇고, 연산자의 주소를 사용하지 않음) 끝에 delete 문을 생략 : 간단한 시작은 큰 정적 할당 될 수있다.

관련 문제

 관련 문제