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++' 카테고리의 다른 글

virtual 키워드를 사용해야 하는 이유  (0) 2019.10.17
temp 변수 없이 swap 하기  (0) 2019.10.16
extern "C" 의미  (0) 2019.10.06
윈도우에서 MySQL 원격 연결  (0) 2019.09.09
AI, 네트워크 오목 프로그램  (0) 2019.09.07