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
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 MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
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 COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.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 LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|