[Langage C]Problème d'allocation
Brimal
-
Char Snipeur Messages postés 10112 Statut Contributeur -
Char Snipeur Messages postés 10112 Statut Contributeur -
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
- Langage visual basic - Télécharger - Langages
- Pascal langage - Télécharger - Édition & Programmation
- Que veut dire le rectangle en langage sms ✓ - Forum Samsung