c++ 초보입니다. 다음 코드의 차이가 궁금합니다.
글쓴이: 익명 사용자 / 작성시간: 목, 2002/05/16 - 7:16오전
#include
using namespace std;
class Test
{
public
void input();
private
};
void Testinput()
{
char *temp;
cin >> temp;
cout << temp;
}
int main()
{
Test test;
test.input();
return 0;
}
이렇게 input 함수를 불러서 cin을 실행을 하면 seg falut가 나옵니다.
그런데
#include
using namespace std;
int main()
{
char* name;
cin >> name;
cout << name;
return 0;
}
이면 정상 출력이 되는군요...
하나는 객체를 생성해서 그 안에 잡힌 pointer에 문자열을 넣었고, 하나는 직접
했습니다. 제 생각에는 메모리 할당 문제인것 같은데, 메모리가 어떻게 잡히길래 이>
런
차이가 발생한 겁니까?
저의 잘못된 생각을 지적해 주시면 감사하겠습니다.
Forums:
Re: c++ 초보입니다. 다음 코드의 차이가 궁금합니다.
흠... 보니깐... 이렇게 해보세요...
char temp[256];
cin >> temp;
cout<
이렇게 하면 될듯하네요... 객체의 인스턴스를 선언한다고 포인터에 메모
리가 잡히는건 아니죠... 그런데 main에다 직접 쓰면 된다고 하셨죠? 아
마... 컴파일러에따라 다를겁니다. 원래 정석은 그게 아니니깐...
암튼 메모리 segmentation fault가 일어난다면 메모리 할당을 무조건 의심
해봐야합니다....
댓글 달기