Pular para o conteúdo

operador seta em c [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. operador seta em c [RESOLVIDO]

Enviado em 05/05/2024 - 13:55h

estou tentando aprender a usar o ->, mas não estou conseguindo!


#include <stdlib.h>
#include <stdio.h>
int main(void){
struct bank{
char idade;
char nome[50];
};
struct bank db;
int *p;
p = (struct dados *) malloc(sizeof(struct dados *));
p = &db;
p->idade = 20;
free(p);
p = NULL;

return 0;
}

Responder tópico

2. Re: operador seta em c [RESOLVIDO]

Melhor resposta

Enviado em 05/05/2024 - 13:55h

Para acessar um membro de uma struct usando o operador seta (->) em C, você deve primeiro alocar memória corretamente para a struct. No seu código, a alocação de memória está incorreta. Veja como corrigir:

[code]
#include <stdlib.h>
#include <stdio.h>

struct bank{
char idade;
char nome[50];
};

int main(void){
struct bank *db; // corrigido para ponteiro de struct bank
db = (struct bank *) malloc(sizeof(struct bank));
db->idade = 20;
free(db);
db = NULL;

return 0;
}
[\/code]

Neste trecho corrigido, a struct é alocada corretamente como `struct bank *db`, a memória é alocada corretamente com `malloc(sizeof(struct bank))` e o acesso ao membro `idade` é feito corretamente com `db->idade = 20;`. Lembre-se de sempre verificar se a alocação de memória foi bem-sucedida e de liberar a memória alocada com `free()` para evitar vazamento de memória.

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder