Ir para conteúdo
Fórum Script Brasil
  • 0

Problema com programinha e c++


thejotta

Pergunta

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 para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...