왼쪽과 오른쪽 하위에 포인터를 할당하려는 것과 관련이 있다는 사실 외에 프로그램이 실패하는 원인을 알지 못합니다. 오류 메시지가 없으면 프로그램이 실행되지 않습니다. 포인터를 잘못 지정했기 때문에 그럴 것이라고 가정합니다. 클래스의 이름은 BinaryTree 템플릿을 사용실행 실패 (알 수없는 원인)
struct TreeNode
{
Type nodeinfo;
BinaryTree<Type> *left;
BinaryTree<Type> *right;
};
:
다음은 구조체입니다. 다음은 잘못된 방법입니다.
template <typename Type>
void BinaryTree<Type>::setSubtree(Type a){
root = new TreeNode;
BinaryTree<Type> *b,*c;
root->nodeinfo=a;
b->root = s.top();
root->right = b;
s.pop();
c->root = s.top();
root->left = c;
s.pop();
s.push(root);
}
s는 TreeNode * 유형의 스택이며 노드를 보유합니다. 루트는 개별 노드입니다.
여러 번 변경 했으므로 처음부터 잊어 버렸습니다. 이것은 (setInfo가 잘 작동) 테스트 코드입니다 : 내가 포인터를 할당하기로되어있어 방법에 대한
tree.setInfo('b');
tree.setInfo('c');
tree.setSubtree('-');
어떤 통찰력을 크게 감상 할 수있다.
초기화되지 않은 포인터를 역 참조하려고합니다. – chris
어딘가에 오류 메시지가 있으며 액세스 위반이 있으며 심각한 오류 메시지입니다. 다른 코드 행을 작성하기 전에 출력 메시지가 덤프되는 위치를 찾아야합니다. – Aesthete