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

cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 - 23 déc. 2002 à 10:53
BaFM Messages postés 64 Date d'inscription mercredi 24 juillet 2002 Statut Membre Dernière intervention 26 novembre 2009 - 27 déc. 2002 à 12:07
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

BaFM Messages postés 64 Date d'inscription mercredi 24 juillet 2002 Statut Membre Dernière intervention 26 novembre 2009
27 déc. 2002 à 12:07
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
cs_Xs Messages postés 368 Date d'inscription mercredi 14 novembre 2001 Statut Membre Dernière intervention 1 septembre 2008
24 déc. 2002 à 12:04
oki
jcecchi Messages postés 117 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 14 janvier 2003 3
23 déc. 2002 à 16:33
Salut,

Pour les includes, utilise plutot ceux du c++ :
#include
#include <cstring>
#include <cstdlib>
cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
23 déc. 2002 à 10:53
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.
Rejoignez-nous