나는 이것에 관해 더 말할 것이 무엇인지 정말로 모른다.변수를 출력하지 않으면 코드가 손상됩니다. 할 때 작동합니다. 왜?
나는 결코 이런 일이 일어나는 것을 보지 못했습니다. 그리고 그것은 단지 원인을 일으키는 원인이됩니다. 나는 너희들이 전에 이것을 보았을지도 모르고, 내가 지금하고있는 어리석은 일을 생각했다.
참고 사항 : 'temp'는 함수가 가져 오는 변수이며 이진 트리 노드 (BTN)입니다. temp-> d는 데이터에 액세스합니다. -> 나는 왼쪽 자식이다. -> r은 오른쪽 자식이다. -> p는 부모입니다
참고 :이 내용은 숙제입니다. 우선 순위 큐에 대한 것입니다.
참고 2 : 비슷한 질문을 보았습니다. 모두 타이밍 오류를 제안했으며 'cout'은 코드를 느려지 게합니다. 이게 뭐야? 내가하고있는 어떤 '비용이 많이 드는'것을 생각할 수 없다.
BTN<generic>* nTemp;
cout << "Sdf\n";
if(temp->r != NULL)
{
if(temp->l != NULL)
{
if(*(temp->r->d) > *(temp->l->d))
{
if(*(temp->r->d) > *(temp->d))
{
cout << "ASDfs5: " << *(temp->d) << "\n"; //THIS IS WHAT KEEPS IT FROM BREAKING/SEGFAULTING
nTemp->d = temp->d; //THIS IS WHERE IT BREAKS (SEGFAULT)
cout << "ASDfs\n";
temp->d = temp->r->d;
cout << "ASDfs4\n";
temp->r->d = nTemp->d;
cout << "ASDfs3\n";
if(temp->r != NULL)
{
checkPopValues(temp->r);
cout << "ASDfs2\n";
}
}
}
else
{
if(*(temp->l->d) > *(temp->d))
{
nTemp->d = temp->d;
temp->d = temp->l->d;
temp->l->d = nTemp->d;
checkPopValues(temp->l);
}
}
}
else
{
if(*(temp->r->d) > *(temp->d))
{
nTemp->d = temp->d;
temp->d = temp->r->d;
temp->r->d = nTemp->d;
checkPopValues(temp->r);
}
}
}
else
{
cout << "sdfs\n";
if(temp->l != NULL)
{
if(*(temp->l->d) > *(temp->d))
{
nTemp->d = temp->d;
temp->d = temp->l->d;
temp->l->d = nTemp->d;
checkPopValues(temp->l);
}
}
}
}
얼마나 많은 스레드가 생성되며 '휴식'이란 무엇입니까? '휴식'이라고 말하면 도움이되지 않습니다. 구체적인 오류나 설명이 필요합니다. –
It SegFaults입니다. 죄송합니다. 과제에 익숙한 사람들의 질문에 너무 익숙합니다. – Madeline