C6011: NULL 포인터 'var'을 역참조하고 있습니다 에러 해결

2019. 10. 12. 17:45PL/C++

 

해당 오류는 malloc과 연관되어 있다. 만일 Node *node = (Node *)malloc(sizeof(Node))가 실패한다면 node는 NULL 포인터를 갖게 된다. 따라서 NULL 포인터의 변수를 참조해서 초기화하는 경우가 생길 수 있다

 

따라서 이를 방지하고자 visual studio에서 경고차원으로 넣은 것이다. 이를 해결하기 위해서는 node가 null인지 아닌지 검사하는 코드가 포함되어야만 한다

 

Node *initNode(int data, Node* leftChild, Node* rightChild) {
	Node* node = (Node*)malloc(sizeof(Node));
	if (node != NULL) {
		node->data = data;
		node->leftChild = leftChild;
		node->rightChild = rightChild;
	}
	return node;
}

'PL > C++' 카테고리의 다른 글