Accueil > Forum > > > > Allocation dynamique dans une fonction
Allocation dynamique dans une fonction
samedi 16 octobre 2004 à 19:02:45 |
Allocation dynamique dans une fonction

Veovis
|
Salut, Toujours dans mon projet de TP, j'ai un petit soucis avec l'allocation dynamique dans une fonction. Ce que je voudrais faire c'est quand le tableau est plein le copier dans un nouveau tableau, supprimer le tableau et le recréer en plus grand, puis y remettre toutes les informations. Si je mets les lignes présents dans la fonction, dans ma fonction main (tout marche impeccablement bien). Mais quand elle est dans ma fonction allocation() le programme ne marche plus. Thanks pr les reponses. Voici un bout de mon code : class tableau { private: char nom[32]; int pointeur; }; int n=2; int nb=0; int v; tableau* tab; tableau* t; void* allocation(); void* allocation() { for(int j=0;j<=n;j++) { t[j].cpy(tab[j].return_nom(),tab[j].return_pointeur()); } delete []tab; tab=NULL; v=n; n=n+n; tab=new tableau[n]; for(int m=0;m<=v;m++) { tab[m].cpy(t[m].return_nom(),t[m].return_pointeur()); } delete []t; t=NULL; } int main() { tab=new tableau[n]; if(n==i) allocation(); return 0; }
|
|
samedi 16 octobre 2004 à 21:36:27 |
Ya des truc halucinnants!!!

Gendal67
|
Euh, c'est un bout de code ? Fodra que tu m'expliques pourquoi tu définis nom et pointeur comme private déja...ça allourdis le prog paske ça t'oblige à passer par des fonctions d'interface ==> surcharge de pile pour rien même si ça "protège" les données....enfin..
Sinon, sans vouloir critiquer mais juste pour améliorer ton code, ça, ça m'horripile : tableau* tab; Un pointeur doit TOUJOURS recevoir une adresse !
Donc la syntaxe est: tableau* tab = NULL et apres tu le redéfinis dans main comme tu l'as fait ac tab = new tableau(n) (des parentheses, pas des crochets!! sauf si t'as surchargé l'opérateur [])
sinon, ça : void* allocation() <<< tu m'expliques ? la fct ne retourne rien alors pourquoi un tye void* et pas void tout court ?
sinon ton algo est compliqué et comme y manque la moitié de la source, jvois aps cmt remédier au probleme....si ça marchait sans utiliser une class, le probleme vient de l'allocation dynamique qq part dans la définition de ta classe...
Genda67, à votre service !
|
|
dimanche 17 octobre 2004 à 12:45:26 |
Re : Allocation dynamique dans une fonction

plus_plus_fab
|
salut,
bon, c'est clair que le code est incomplet ou dans le désordre ou surement les deux ! donc impossible de t'aider ...
par contre pour l'encapsulation des données, ça ne surchage aucunement la pile. Ca provoque juste des appels de fonction supplémentaires, et si le temps d'exécution des fonctions est du meme ordre que le cout de leurs appels, tu les définis inline.
pour les pointeurs, c'est pas une obligation de les initialiser, tant que tu ne t'en sers pas avant de leurs avoir affecter une adresse. D'ailleurs on utilise jamais le macro NULL en C++ (uniquement en C). Si on fait tab = new tableau[n], on construit une tableau de n éléments "tableau" en utilisant le constructeur par défaut. tab = new tableau(n), on construit un élément "tableau" en utilisant le constructeur approprié (à un paramètre du type de n).
++
|
|
dimanche 17 octobre 2004 à 12:48:08 |
Re : Allocation dynamique dans une fonction

Gendal67
|
Oui, c''est vrai plus_plus_fab, je suis d'accord avec toi (merci de me corriger :)), juste un truc ou je proteste toujours : les fonctions se servent de la pile !!! :-)
Genda67, à votre service !
|
|
dimanche 17 octobre 2004 à 13:45:31 |
Re : Allocation dynamique dans une fonction

plus_plus_fab
|
oui exact, mon commentaire est moyen ... l'utilisation de la pile pour l'appel de fonction a un cout vraiment moindre quand meme ! Et si on juge que c'est couteux (ie du meme ordre que le cout d'execution de la fonction elle meme), on la définit inline, et hop ! plus d'appel de fonction (dans la tres grande majorité des cas).
|
|
lundi 18 octobre 2004 à 16:27:07 |
Re : Allocation dynamique dans une fonction

djl
|
en c++
NULL == 0, d'ailleur NULL n'est pas definie, si tu veux l'utiliser definie la macros NULL 0
en c
NULL <-> ((void*)0) ou 0, la macros ets la pour ca
en c
void* et ses conversions implicites sert de type générique
en c++
ca sert à caster inutilement et à foutre la merde
en c99 comme en c++, les petites fonctions dont la définition est connue sont inliner à la compilation
|
|
Cette discussion est classée dans : fonction, int, tableau, tab, allocation
Répondre à ce message
Sujets en rapport avec ce message
Tableau en C [ par Mickylord ]
Bonsoir a tous !Voici ma question :J'ai une fonction principale, main(), et une autre fonction tab(). Je voudrais déclarer un tableau dans la fonction
tableau d'entier. [ par gdpasmini ]
Hello !j'ai un petit soucis avec une fonction qui renvoi un tableau en parametre... voila les details :Dans mes fonctions : int * boutonDecodFlux(void
Allocation dynamique de mémoire d'un tableau dans une fonction [ par DJfewos971 ]
Bonjour a tous,mon problème est de pouvoir alloué la mémoire dynamiquement d'un tableau dans une fonction.Voici mon problème niveau Code:#include #inc
Exercice sur Pointeurs, classes, héritage... [ par snoozriton ]
Bonjour à tous, étant en train d'étudier le C++, j'ai quelques soucis avec un exercice. C'est un classique dont je vous donne l'énoncé : [b]1. Défini
problème de allocation de tableau [ par boualiasma ]
Bonsoir, Je voulais copier le contenu de fichier "exemple.txt" dans un tableau dynamique t de taille inconnue en avance. J'utilise le tableau pour fa
Probleme passage tab** de fonctions a fonction. [ par Nitrakz ]
Bonjour tous le monde ! Comme l'explique le titre j'ai un petit soucis pour passer un tableaux a 2 dimensions tab[i][j] d'une fonction a une autre.
pile dynamique [ par korin221 ]
Bonjour! Voila j'ai un problème. Je voudrais mélanger ma pile dynamique de façon aléatoire. Peut on directement mélanger la pile ou alors passer la pi
Problème de définition de fonction dans une classe [ par labuche75 ]
Bonjour à tous, je rencontre un problème à priori de définition de fonction dans la classe tableau permettant de manipuler de grands entiers nécessair
passage de tableau à 3 dimensions en paramètre à une fonction [ par snake57 ]
Bonjour à tous, J'ai un tableau à 3 dimensions que je veux afficher à partir d'une fonction. J'ai donc créé une fonction mais celle-ci affiche...n'im
remplir un nombre dans un tableau [ par alex934 ]
Bonjour, j'ai besoin de votre aide :) Voila je souhaite mettre un nombre stocké(int) dans un tableau exemple: int a=132; int tab[3]; je voudrais
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : SAC A DOS RE : SAC A DOS par hadjkaddour
Cliquez pour lire la suite par hadjkaddour
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|