C6011: NULL 포인터 'var'을 역참조하고 있습니다 에러 해결
2019. 10. 12. 17:45ㆍPL/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 |