[Langage C]Problème d'allocation
Brimal
-
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Salut,
ce bout de code représente l'allocation dynamique d'un tableau dont je ne connait pas la taille au départ.
Je souhaite augmenter la taille au gré des besoin
tab_ip est de type Adresse_ip*
Au départ, indice vaut 0 et k vaut 1.
Le problème est que ce que j'ai fait n'est pas correct car je n'obtiens rien de bon lors de mon affichage.
Est-ce que vous pourriez m'aider à modifier le code pour que cela fonctionne.
Merci
ce bout de code représente l'allocation dynamique d'un tableau dont je ne connait pas la taille au départ.
Je souhaite augmenter la taille au gré des besoin
tab_ip est de type Adresse_ip*
Au départ, indice vaut 0 et k vaut 1.
Le problème est que ce que j'ai fait n'est pas correct car je n'obtiens rien de bon lors de mon affichage.
Est-ce que vous pourriez m'aider à modifier le code pour que cela fonctionne.
Merci
if (p != NULL) { int ip[4]; sscanf(p, "%d.%d.%d.%d", ip, ip + 1, ip + 2, ip + 3); tab_ip[indice].a = ip[0]; tab_ip[indice].b = ip[1]; tab_ip[indice].c = ip[2]; tab_ip[indice].d = ip[3]; indice ++; if(indice == k) { Adresse_ip *tmp = (Adresse_ip *)malloc(2 * k * sizeof(Adresse_ip)); if (tmp == NULL){ perror("erreur allocation"); exit(1); } for (j = 0; indice < k; j++) { tmp[j] = tab_ip[j]; } free(tab_ip); tab_ip = tmp; for (j = k+1; indice < 2*k; indice++) { tab_ip[j] = tmp[j]; } free(tab_ip); } }
A voir également:
- [Langage C]Problème d'allocation
- Langage ascii - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage visual basic - Télécharger - Langages
- Langage basic gratuit - Télécharger - Édition & Programmation