whtmdgus56   3년 전

기존의 node nodes[16] 부분을 제가 임의로 treepointer nodes[16]; 로 변경해서 최대한 포인터에 맞게 코드를 짜봤는데 제대로 실행이 되지않네요...

안되는 부분을 수정해주시면 감사하겠습니다!!

harinboy   3년 전

node* nodes[16]의 값은 바로 사용하면 의미가 없는 값으로,

malloc을 사용해 메모리를 할당해주어야합니다. for(int i=1; i<=15; i++) nodes[i]=malloc(sizeof(node));

그리고 node[1]이 root가 되게 하실 생각이셨다면, nodes[i/2]->rightchild=nodes[i]는 i=1일 때 실행이 되면 안될 것 같습니다.

nodes[0]인 노드는 없기 때문에, 추가로 malloc을 통해 메모리를 할당해주신 것이 아니라면, 같은 오류가 날 것입니다.

댓글을 작성하려면 로그인해야 합니다.