Jump to content
Fórum Script Brasil
  • 0

Problema com programinha e c++


thejotta
 Share

Question

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;
}

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.2k
    • Total Posts
      647.5k
×
×
  • Create New...