[DEVC++]CHERCHE LE COMPLEMENTAIRE DE LA BASE AZOTÉE (ADN)

Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006
-
Messages postés
64
Date d'inscription
mercredi 24 juillet 2002
Statut
Membre
Dernière intervention
26 novembre 2009
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/10196-devc-cherche-le-complementaire-de-la-base-azotee-adn

Messages postés
64
Date d'inscription
mercredi 24 juillet 2002
Statut
Membre
Dernière intervention
26 novembre 2009

tu devrai soit utiliser que malloc/free (C), soit que new/delete (C++)
Version avec malloc/free :

//...
seq = (char*)malloc(1024); //...
//...
seqcpl = (char*)malloc(strlen(seq)+1); //allocation dynamique du second pointeur //utilisation de strlen pour connaitre la taille exacte de la chaîne !
//...
free(seq);
free(seqcpl);
//...

Version avec new/delete :

//...
seq = new char [1024]; //...
//...
seqcpl = new char [strlen(seq)+1]; //allocation dynamique du second pointeur //utilisation de strlen pour connaitre la taille exacte de la chaîne !
//...
delete [] seq; il faut les [] lorsque l'on a allouer un tableau et non un unique élément !
delete [] seqcpl;
//...

NB : Il faudrait faire : seqcpl[0]=0 : à cause de l'utilisation de strcat, de plus ca rend le code un peu plus lisible et compréhensible
Messages postés
368
Date d'inscription
mercredi 14 novembre 2001
Statut
Membre
Dernière intervention
1 septembre 2008

oki
Messages postés
117
Date d'inscription
samedi 12 janvier 2002
Statut
Membre
Dernière intervention
14 janvier 2003
3
Salut,

Pour les includes, utilise plutot ceux du c++ :
#include
#include <cstring>
#include <cstdlib>
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006
1
Pourquoi mélanger les allocations mémoires C et C++ ?

1- Quand il n'y a plus de mémoire disponible, malloc() retourne NULL.

2- On libére de la mémoire allouée par malloc() avec free().

3- Les deux sizeof() que tu utilises sont mals utilisés car ils retournent toujours la taille du pointeur (ici 4 octets). De tout façon, sizeof() ne peut pas être utilisé pour déterminer la taille d'un tableau dynamique.