을 사용하여 cpp에서 작동을 멈 춥니 다.이 코드를 사용하고 있지만 실행되지 않습니다. Dev C++에서 실행되지 않습니다. 실행되면 폭발합니다.프로그램이 컴파일되고 실행되지만 때로는 typedef 키워드
node n = new Node;
을 사용하여 cpp에서 작동을 멈 춥니 다.이 코드를 사용하고 있지만 실행되지 않습니다. Dev C++에서 실행되지 않습니다. 실행되면 폭발합니다.프로그램이 컴파일되고 실행되지만 때로는 typedef 키워드
node n = new Node;
당신은 n
메모리를 할당해야합니다. 데이터를 읽거나 쓸 수있는 메모리 주소를 할당해야합니다.
이 트릭을 수행해야합니다
node n = new Node;
typedef struct Node *node;
당신을 위해 조금 혼란 스러울 수 있습니다.
Node* n = new Node;
을 그리고 n
그냥 포인터이며, 따라서 당신이 가리키는 곳을 몇 가지 주소를 할당 할 필요가 훨씬 더 명확하다 타입 정의를 없애 :
당신은 쓸 수 있습니다.
할당 초기화 변경 –
@StoryTeller typedef를 제외하면 'n'은 할당되지 않은 Node 유형의 구조체에 대한 포인터가됩니다. 실행중인 세그먼트 위반이 발생합니다. 작성자는 다음과 같이해야합니다 :'node n = new Node; –
분명히 n
변수가 어디서 아는 사람을 가리키는 포인터입니다 :처럼, 뭔가를 사용하기 전에
#include <iostream>
using namespace std;
struct Node
{
struct Node* left;
int data;
struct Node* right;
};
typedef struct Node *node;
int main()
{
node n;
n->data = 4;
cout << n->data << endl;
return 0;
}
무엇이 오류입니까? – Tyler
@Ron DevC++는 g ++를 컴파일러로 사용합니다. –
사실, 데이터 필드와 다른 것들을 포함 할 수있는 메모리를 n에 제공해야합니다. – Amit