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

Ajuda Com Ponteiros Em C


McBlade

Pergunta

Gente eu to aprendendo ponteiros ainda... meu professor sacaneou pedindo pra fazer um sisteminha básico usando somente ponteiros...

mas eu to precisando de ajuda por que não consigo ler uma string

struct tp_pessoa {
  int  *codigo;
  char *nome;
};

void grava(struct tp_pessoa *aux) {
  if ((arquivo = fopen("PROGRAMA.TXT","a+"))) // se conseguiu abrir o arquivo
    fprintf(arquivo, "%d %s\n", *aux[0].codigo, strupr(aux[0].nome));
  else
  {
    printf("Erro ao tentar gravar no arquivo PROGRAMA.BIN: ERRO 002");
    getch();
  }
  fclose(arquivo);
}

main () {
  char *opcao, *nome;
  int codigo;
  struct tp_pessoa *aux = (struct tp_pessoa *)malloc(1 * sizeof(struct tp_pessoa));
  aux[0].codigo = &codigo;
  aux[0].codigo = nome;
  scanf("%d", codigo);
  gets(nome);
  gravaarquivo(aux);
}

O problema é que ao ler a variável código, o programa pula direto para a funcao "gravaarquivo" gravando assim, no arquivo apenas o código... Onde eu estou errando? Tentei até o fgets e não funciona... :(

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Aqui tem um problema:

int codigo;
  ...
  scanf("%d", codigo);
codigo não é ponteiro e você não passou o endereço dele para o scanf. e aqui tem outro
aux[0].codigo = &codigo;
  aux[0].codigo = nome;
não seria
aux[0].nome = nome;

Foi o que eu achei, mas se não der certo avise.

Link para o comentário
Compartilhar em outros sites

  • 0

Cara realmente eu errei ao Colar o Código, mas mesmo após as correções ainda dá o mesmo tipo de problema. Meu Professor pediu para usar scanf ao invés de gets... Ainda sim trocando não dá certo...

Apenas troquei gets(nome) para scanf("%s", aux->nome); mas não vai... to encalhado cara... =\

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
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...