Accueil > Forum > > > > Operateur new allocation new
Operateur new allocation new
mardi 27 décembre 2005 à 15:34:47 |
Operateur new allocation new

yserver
|
Bonjour, je cherche un peu d'aide pour cette modeste class. Telle quelle est présenté la elle génère une erreur lors de l'execution (ligne signalés dans la classe.
class CRepertoire { public: char * cNomRepertoire; //Avec char * cNomRepertoire aucun problème (je suprime la ligne new dans le constructeur) unsigned long ulNbReps; unsigned long ulNbFichiers; unsigned long ulTailleMo; CRepertoire(char * cRepertoire = "c:"); ~CRepertoire(void); void ScanRep(char *cRepertoire); }; CRepertoire::CRepertoire(char * cRepertoire) { char * cNomReperoire = new char[strlen(cRepertoire)]; //Ligne qui pose problème *cNomRepertoire = "" strcpy(cNomRepertoire, cRepertoire); ulNbReps = 0; ulNbFichiers = 0; ulTailleMo = 0; ScanRep(cNomRepertoire); } Pourquoi cette ecriture n'est pas correcte. Merci
|
|
mardi 27 décembre 2005 à 15:39:05 |
Re : Operateur new allocation new

yserver
|
désolé pour la mise en forme (problème de copier coller)
|
|
mardi 27 décembre 2005 à 15:48:49 |
Re : Operateur new allocation new

ekinox17
|
Donne nous l'appel de ton constructeur car on connait pas la valeur que
tu as donner à cRepertoire en general les erreur a l'execution ça vient
des pointeur NULL (non initialisé)
Verifie que le paramètre de ton constructeur est bien un char* .
C U Later ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 + 1 = 1, c'est l'harmonie parfaite (citation de J-C Van-Dame) Vive la logique: 1 ou 1 ça fait bien 1 : pas si fou que ça JC ;)
|
|
mardi 27 décembre 2005 à 15:57:07 |
Re : Operateur new allocation new

vecchio56
|
*cNomRepertoire = ""
Ca passe à la compilation ce truc?
|
|
mardi 27 décembre 2005 à 16:07:01 |
Re : Operateur new allocation new

yserver
|
non pardon cNomRepertoire ="" passe a la compilation mais pas a l'execution c'etait a des fin de test Je reformule donc : class CRepertoire { public: char * cNomRepertoire; //Avec char * cNomRepertoire aucun problème (je suprime la ligne new dans le constructeur) unsigned long ulNbReps; unsigned long ulNbFichiers; unsigned long ulTailleMo; CRepertoire(char * cRepertoire = "c:"); ~CRepertoire(void); void ScanRep(char *cRepertoire); }; CRepertoire::CRepertoire(char * cRepertoire) { char * cNomReperoire = new char[strlen(cRepertoire)]; //Ligne qui pose problème strcpy(cNomRepertoire, cRepertoire); ulNbReps = 0; ulNbFichiers = 0; ulTailleMo = 0; ScanRep(cNomRepertoire); }
Et je l'appel ainsi CRepertoire CRepSource (cFileName); J'ai controlè l'argument cFileName, il est correct puisque avec cette ecriture ca passe : char cNomReperoire[512];
|
|
mercredi 28 décembre 2005 à 00:11:45 |
Re : Operateur new allocation new

luhtor
|
Le strlen ne prend pas en compte le caractère nul, donc faut rajouter une case à ton tableau de caractère.
new chat[strlen(cRepertoire)+1];
Mais pourquoi se faire.... avec des char* alors que le C++ offre des string ^^
|
|
mercredi 28 décembre 2005 à 06:41:59 |
Re : Operateur new allocation new

yserver
|
J'avais essayé avec new chat[strlen(cRepertoire)+1]; Meme résultat. Je vais revoir tout ca. Merci
|
|
mercredi 28 décembre 2005 à 09:18:09 |
Re : Operateur new allocation new

nightlord666
|
L'erreur vient du fait que tu redeclare ta variable cNomRepertoire. Tu lui dit de créer une variable qui existe deja, donc sa pose probleme... met plutot sa :
this->cNomRepertoire = new char[strlen(cRepertoire) + 1];
Le probleme ne vient donc pas du tout du new...
|
|
mercredi 28 décembre 2005 à 09:19:23 |
Re : Operateur new allocation new

nightlord666
|
Sa m'etonne d'ailleur que personne n'y ait pensé... Tout le monde regardait l'allocation, mais pas le reste de la ligne...
|
|
mercredi 28 décembre 2005 à 11:44:01 |
Re : Operateur new allocation new

luhtor
|
NightLoad -> ya aucun problème de ce coté la. Ou vois tu une
variable deja déclarée ? De toute facon, "this" est facultatif. Perso,
il rend le code plus lisible, mais c'est une question de gout :)
Sinon voila la solution.
char * cNomRepertoire = new char[strlen(cRepertoire)+1]; //Ligne qui pose problème
memset(cNomRepertoire, 0, strlen(cRepertoire)+1);
strcpy(cNomRepertoire, cRepertoire);
Sinon que fait la fonction scanrep ?
|
|
Cette discussion est classée dans : ligne, char, unsigned, crepertoire, cnomrepertoire
Répondre à ce message
Sujets en rapport avec ce message
pb avec conio je cher cherche l'erreur( j'ai merde sur le mess precedent) [ par kin ]
portpia.cpp#include"PortPiaPc.h"void main(){ PortPiaPc inst; inst(0x320,0x0f);}PortPiaPc.cpp#include "PortPiaPc.h"#include "conio.h"PortPiaPc::PortPia
Comment concertir Ansistring en unsigned char*????? [ par asik38 ]
Ansistring x;unsigned char str[100];str[100]=x;??????Merci!!!
Pointeurs sur des tableaux de plusieurs dimensions [ par ProGamer ]
J'ai besoin de faire des pointeurs sur ce genre de tableaux. Voici comment je m'y prends (et surtout, voici comment ça ne marche pas...):unsigned char
conversion [ par coyotedef ]
salut!!lors de la compilation de mon code une erreur apparait. impossible de trouver un remede. "cannot convert parameter 1 from 'char [10]' to 'char'
char* to unsigned char* [ par rodrigos ]
comment peut-on convertir un char* en unsigned char*?à quoi correspond un unsigned char*?Merci pour votre aide!!
pb avec variable [ par jeffise57 ]
Please aidez moiJe reçoit comme arugument du fonction des variables unsigned char* et je doit passer dans une deuxième fonction les même arguments mai
Parametre sur la ligne de commande [ par payen ]
Salut a tous,j'ai un petit souci en C++ ...alors voila : j'ai ecrit un code qui prend comme parametres sur la ligne de commande 2 entiers. Ensuite, pl
struct [ par ready4 ]
Je ne sais pas comment initialiser mes moteurs //intialisation moteursM1 = {2, 1, 1, 2, 0, 0, 120};M2 = {8, 4, 4, 8, 0, 0, 80};M3 = {32, 16, 16, 32, 0
probléme d'écriture fichier [ par phoenixadb ]
phoenixadbJ'ai un problème sur une fonction que je n'arrive pas à résoudremon nom de fichier est test.txtet ma fonction:void ecriturefichier(char* nom
Newbie Erreur en C sous JBuilder c++ 6 [ par MrNo ]
salut je suis en trainde reprendre un programme existant en c sous cbuilder qui marchai t avant mais j'aides erreur a la compilationvoici mon code sur
Livres en rapport
|
Derniers Blogs
[WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|