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
[WF4] PASSAGE D'ARGUMENTS LITERAL, VISUALBASICVALUE OU LAMBDAVALUE?[WF4] PASSAGE D'ARGUMENTS LITERAL, VISUALBASICVALUE OU LAMBDAVALUE? par JeremyJeanson
Avec la sortie de la RC de Visual Studio 2010, Microsoft a mis un peu les points sur leS i en ce qui concernait le passage d'arguments. Mais nous somme un certain nombre à avoir pris ce changement comme un coup dur. Pour résumer la situation : à la sortie...
Cliquez pour lire la suite de l'article par JeremyJeanson [RIA SERVICES] INCLUDE ET DOMAINDATASOURCE[RIA SERVICES] INCLUDE ET DOMAINDATASOURCE par Audrey
Dans un de mes articles précédents , j'avais parlé des DomainDataSource avec RIA Services dans le cas d'une interface Maître - Détail. Dans le même principe, je vais parler d'une autre manière de mettre en forme ce cas d'interface avec RIA Services. Et po...
Cliquez pour lire la suite de l'article par Audrey ZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATIONZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATION par ROMELARD Fabrice
Une des nouveautés de la version V 3.0 était l'apparition de l'onglet Social qui ne fonctionnait que si le MarketPlace était activé sur son poste. Cela limitait donc son intérêt, car hors du cadre commercial USA-CANADA, peu de monde trouva...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice PRATIQUE DE SILVERLIGHT PAR ERIC AMBROSIPRATIQUE DE SILVERLIGHT PAR ERIC AMBROSI par MPOWARE
Je viens de finir la lecture du dernier livre d'
Eric Ambrosi
éditions PEARSON
Son livre donne une approche pratique de Silverlight qui sera aussi bien comprise par le développeur que par le designeur.
Tous les aspects du développement RIA sont abor...
Cliquez pour lire la suite de l'article par MPOWARE APPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NETAPPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NET par odewit
2 déclinaisons de Silverlight et 2 déclinaisons de Mono permettent dorénavant (ou permettront prochainement) de développer des applications .NET mobiles pour les principales plates-formes du marché :
Silverlight pour Symbian, basé sur Silverlight 2...
Cliquez pour lire la suite de l'article par odewit
Forum
RE : TRADAIONRE : TRADAION par shootangel
Cliquez pour lire la suite par shootangel
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|