thejotta Postado Outubro 16, 2012 Denunciar Share Postado Outubro 16, 2012 Ola amigos programadores. sou novo no forum e se meu post tiver algo que não esteja de acordo com as leis do forum me perdoe. Mais estou com um problema com esse código abaixo.Não sei o motivo, mais o codigo compila, mais quando executo o programa ele manda uma msg que o programa parou de funcionar.eu marquei uma linha de comando abaixo, aonde acho que seja o problema mais não sei o porque..se algum amigo poder me ajudar fico grato. #include <iostream> const int ORDEM=4; using namespace std; //======================================== class Key{ private: int chave; public: void Set_chave(int ch){ chave=ch; } int Get_chave(){ return chave; } void mostrar_chave(){ cout<<chave<<endl; } }; //========================================= class No{ private: int num_elem; Key *no[ORDEM]; public: //Construtor No(){ num_elem=0; for(int i=0;i<ORDEM;i++) no[i]=NULL; } //Destrutor ~No(){ delete no; } void Ins(int ch){ for(num_elem=0;num_elem<ORDEM;num_elem++){ if(no[num_elem]==NULL){ no[num_elem]->Set_chave(ch);//problema nessa linha de comando cout<<"inseriu"<<endl; break; } } if(num_elem==ORDEM-1) cout<<"NO cheio"<<endl; } }; int main(){ No *n=new No(); n->Ins(1); return 0; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Marcelo Utikawa da Fonseca Postado Outubro 16, 2012 Denunciar Share Postado Outubro 16, 2012 Oi!Realmente o problema está naquela linha.Veja que na linha acima você checa se o nó é nulo. Se é nulo, você entra no laço da linha indicada. A linha indicada acessa a função Set_chave deste elemento, ou seja, acessa um ponteiro nulo. Antes da linha indicada você precisa criar o novo elemento. Isso é feito adicionando-se a linha a seguir:no[num_elem] = new Key;Abraços,Marcelo Utikawa da Fonseca Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
thejotta
Ola amigos programadores. sou novo no forum e se meu post tiver algo que não esteja de acordo com as leis do forum me perdoe.
Mais estou com um problema com esse código abaixo.
Não sei o motivo, mais o codigo compila, mais quando executo o programa ele manda uma msg que o programa parou de funcionar.
eu marquei uma linha de comando abaixo, aonde acho que seja o problema mais não sei o porque..
se algum amigo poder me ajudar fico grato.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.