Accueil > Forum > > > > allocation statique
allocation statique
jeudi 12 août 2004 à 19:30:49 |
allocation statique

imanewin32
|
slt je réalise une application MFC et ds une de mes classes j'ai fais l'allocation ds le constructeur de la façon: chemain=new char[MAX_PATH+1]; comme j'ai l'habitude de faire mais on m'a proposé de faire une allocation statique vue que le nombre d'octet à allouer est tjrs fixe j'ai pas compris ça!!! si quelqu'un à une idée ,qu'il m'aide merci d'avance!!!!!!! 
|
|
jeudi 12 août 2004 à 19:38:04 |
Re : allocation statique

imanewin32
|
est ce que cela veut dire tout simplement travailler avec des tableaux de caractères 
|
|
jeudi 12 août 2004 à 20:19:51 |
Re : allocation statique

Arnotic
|
Imagine un char szBuff[512]; Tu as un buffer de 512 octets, dans lequels tu peux te déplacer grace au pointeur (adresse qui pointe sur cette zone mémoire).
strcpy(szBuff+256, "bonjour"); MessageBox(GetFocus(), szBuff+256, "debug", 0x40);
Affiche par exemple les octets qui se trouve à la 256eme position de ton buffer jusqu'a un 0 final.
Quoi voilà après tu peux ce que tu veux dans cet espace memoire et t'y déplacer grace à un pointeur.
@+ Arnotic, Admin CS, MVP Visual C++
|
|
vendredi 13 août 2004 à 10:23:44 |
Re : allocation statique

essirc
|
Salut,
Cela signifie tout simplement qu'au lieu d'avoir :
class LaClasse { ... private : char * chemain; ... };
dans ta classe, tu peux écrire :
private : char chemain[MAX_PATH + 1];
et que tu peux enlever : chemain=new char[MAX_PATH+1]; de ton constructeur, et :
delete [] chemain; de ton destructeur
Voilà c'est tout :)
P.S : Dans les deux cas tu travailles avec des tableaux de caractères.
|
|
vendredi 13 août 2004 à 13:27:20 |
Re : allocation statique

djl
|
et le constructeur de copie et l'operateur = ??
|
|
vendredi 13 août 2004 à 18:28:26 |
Re : allocation statique

pjb
|
une allocation statique est une allocation mémoire qui se fait en gros en entrant dans un bloc ("{ ... }"); elle est statique car les emplacements mémoires sont déjà prévus avant la compilation
ex: int i[10]; // 10 est bien une CONSTANTE
en revanche, une allocation dynamique est une allocation qui peut se produire n'importe quand dans un programme (non prévue avant compilation)
par ex: int *n; /* ........... */ n = (int*)malloc( x * sizeof(int) ); /* x : VARIABLE (non nécessairement constante comme 10 au dessus) */
le C interdit par ex. l'allocation dynamique suivante : int i[ x ]; (même si t'as mis x = 10 juste avant avant)
(essirc donne un bon exemple ci-dessus : MAX_PATH est une constante avant la compilation car macro d'ou alloc. stat.)
@+ j'espère avoir été clair
|
|
vendredi 13 août 2004 à 19:41:14 |
Re : allocation statique

djl
|
c99 autorise int i[ x ]; si x est specifier const
le cast de malloc est inutile
en dynamique on alloue sur le tas et en statique dans la pile (pour une fonction)
plutot que faire
void func() { char c[ MAX_PATH ]; }
pour ne pas encombrer la pile on peut faire
void func() { static char c[ MAX_PATH ];
}
ou
void func() { char *c;
c = malloc( MAX_PATH );
free(c); }
la premiere solution est la plus performante mais la zone memoire est la meme pour chaque appel
|
|
samedi 14 août 2004 à 13:46:32 |
Re : allocation statique

pjb
|
1: je parle du C, et la norme ne prévoit pas de faire int i[ x ];
2: le cast de malloc est certes (souvent) inutile mais fortement conseillé pour des raisons de portabilité : certains compileurs te gètent si tu ne fais pas le cast, ou tout simplement des warnings peuvent avoir lieu...
3: "en dynamique on alloue sur le tas et en statique dans la pile (pour une fonction) [...] " tu as tout-à fait raison, mais je ne crois pas qu' imanewin32 attendait une réponse "technique" comme celle-ci, je ne suis pas sur qu'il va la comprendre (sinon il ne poserait pas des questions comme celle-là)
@bientot
|
|
samedi 14 août 2004 à 16:23:06 |
Re : allocation statique

djl
|
"je parle du C, et la norme ne prévoit pas de faire int i[ x ];"
on parle pas de norme, le standard autorise int i[ x ]; si x est const, apres precise si tu parle de c ansi (c89) ou c99
|
|
samedi 14 août 2004 à 18:48:25 |
Re : allocation statique

pjb
|
tu as effectivement raison, j'ai dit une grosse annerie (je n'avais pas vu le qualifieur CONST dans ta phrase)
je voulais lui expliquer la diff entre stat. et dyn. simplement, de manière un peu vulgarisée, sans trop entrer dans tous les détails (notamment "const"), mais t'as raison de me le faire remarquer...
@bientot
|
|
Cette discussion est classée dans : ds, allocation, statique
Répondre à ce message
Sujets en rapport avec ce message
Allocation statique de tableaux de taille importante [ par THEwarrior333 ]
Bonjour, je me demandais s'il était possible de connaître la mémoire disponible sur la pile, car en tentant d'allouer des tableaux de taille très impo
allocation dynamique d'un tableau [ par elpens ]
Bonjour à tous,J'ai trouvé quelques thème sur ce forum concernant ma question, mais je n'arrive pas à l'appliquer...J'aimerai allouer dynamiquement la
récupération de données de taille inconnue dans le main [ par fatenov ]
Salut tout le monde, Je veux récupérer dans le main le contenu d'une variable calculée dans un module dans le main, mais le problème est que la tail
Librairie Statique [ par Kebims78 ]
Bonjour à tous.Afin de pouvoir réutiliser des fonctions déjà écrite, je souhaiterai créer une librairie statique sous Visual C++. Je me suis orienté v
Allocation contigue [ par forest123 ]
Bonjour tous le monde, En faite j'ai un code qui utilse un tableau de 4 dimesions (12*x*y*z), j'alloue ce tableau avec (un seul pointeur) un tableau p
Aide exercice C [ par lkaiman ]
Bonjour a tousJ'espère que Nowël s'est bien passé pour tous le monde, et que bien sur le nouvel an sera encore meilleur_______________________________
Classes et allocation dynamique C++ [ par CCJ ]
Salut.Question tres simple :Est il possible de declarer un tableau de classes dynamiquement et de le "resize" par la suite ?Si l'informatique été de l
Jeux etautres [ par jeanphilippe37 ]
slt, je voulais avoir "quelques tuyaux" pour programmer un prgm. Voila, je connais bien le c++ maintenant, ms comment dois je faire pour programm
Erreur "invalid allocation size"/dll [ par guizmo83 ]
Bonjour à tous,Je n'ai pas l'habitude de poster sur les forums, alors svp soyez indulgents!Je souhaite faire une dll à utiliser à travers une macro VB
Livres en rapport
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : WIN APIRE : WIN API par racpp
Cliquez pour lire la suite par racpp WIN APIWIN API par omarino_007
Cliquez pour lire la suite par omarino_007
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|