joanacs Posted December 28, 2019 at 12:32 AM Report Share #616939 Posted December 28, 2019 at 12:32 AM typedef struct data_cliente client; struct data_client { char *subscription_list; }; void save_subscription(char topic_chosen[50]){ client c; int j; c.subscription_list = malloc(strlen(c.subscription_list) + 1); if(c.subscription_list == NULL){ printf("\n[ERROR] Memory allocation."); exit(0); } else{ strcpy(&c.subscription_list[strlen(c.subscription_list)], topic_chosen); } for(j=0; j<strlen(c.subscription_list); j++) printf(" %s", &c.subscription_list[j]); } Eu estou a tentar guardar uma string num array dinâmico de strings mas estou a ter alguns problemas. Eu só quero alocar algum espaço para uma string de cada vez e salvá-la, para que da próxima vez possa adicionar outra string ao array, mas manter as outras já adicionadas. O meu código neste momento está a salvar lixo juntamente com a string que eu pretendo e se eu tentar adicionar uma segunda string ao array, a primeira desaparece. Alguém me pode ajudar? Link to comment Share on other sites More sharing options...
Rui Carlos Posted December 28, 2019 at 01:17 PM Report Share #616940 Posted December 28, 2019 at 01:17 PM Provavelmente o que pretendes é usar um array de strings e não uma única string. Adicionalmente, sempre que alocas novas memória e queres manter os dados antigos, tens que copiar os dados antigos para a nova regiam de memória (e já agora, convém libertar a memória antiga). Rui Carlos Gonçalves Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now