Jump to content
Sign in to follow this  
Murillo Dourado

Programmin Spybot

Recommended Posts

Join the conversation

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

Guest
Reply to this topic...

×   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.

Sign in to follow this  



  • Similar Content

    • By montanha
      É possível clonar os arquivos de um celular que esteja conectado a minha rede wifi?
    • By qebuqci
      Eai rapaziada, beleza?
      Então to começando a programar em C e estou com dificuldade em fazer um negócio. Eu quero criar uma estrutura e um ponteiro que guarde os valores referentes a cada membro da estrutura. Algo semelhante a isso
      typedef struct { char nome[20], marca[20]; } ESTRUTURA; int main(void) { ESTRUTURA *ponteiro; int i, quantidade;
      Ai aqui entra um loop de repetição (for i até quantidade) pra eu associar cada valor do ponteiro->nome, ponteiro->marca. Tanto quanto for necessário. Por exemplo, se eu quiser fazer um cadastro de três marcas por exemplo, eu quero um ponteiro que suporte isso na memória e cada valor aponte pra um membro da estrutura.
      scanf("%d",&quantidade); ponteiro=(char *) malloc (quantidade*sizeof(ESTRUTURA)); for (i=1;i<=quantidade;i++) { scanf("%s",ponteiro->nome); scanf("%s,ponteiro->marca); } criaArquivo(ponteiro); free(ponteiro); return 0; }
      Bom, a questão é, eu quero salvar todos os dados cadastrados num arquivo depois. Então, eu criei uma função que recebe o ponteiro em que estão e joga isso pro ponteiro arquivo. E até aqui beleza, ele cria o arquivo, mas o arquivo só salva o primeiro valor da primeira posição de memória. No caso do exemplo que eu dei, digamos que eu quisesse cadastrar 3 marcas e 3 nomes. Ele alocaria dinamicamente o espaço necessário e cadastraria tudo certinho, agora na hora de passar pro arquivo, somente o primeiro nome do primeiro cadastro é salvo.
      Eu não entendi isso, eu não passei o ponteiro inteiro pra função criaArquivo?
      Eu estou salvando no arquivo desse jeito
       
      void criaArquivo(char *ponteiro) { FILE *arquivo; arquivo=fopen("teste.txt","w"); fprintf(arquivo,"%s",ponteiro); fclose(arquivo); } Se eu pedir na função criaArquivo pra ele printar esse ponteiro que ele recebe, ele não recebe o ponteiro inteiro com todos os dados cadastrados na main, ele recebe somente o valor daquela posição de memória. Somente do primeiro ponteiro->nome. Ai isso é que quebra, porque eu já tentei chamar na main, criaArquivo(ponteiro+1). Achando que a próxima posição de memória teria ponteiro->marca. E ele cria o arquivo sem nada, como se não tivesse valor cadastrado ali
      Então assim, deixando claro as minhas dúvidas, eu defini um ponteiro com tamanho A bytes. Quando eu passo ele pra outra função, ele não vai com o tamanho A de memória, ele vai somente o valor da primeira célula de memória, certo? Como eu faço pra pegar o resto?
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.