Contourner la limite des 64ko du tas [code en c]

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 433 fois - Téléchargée 37 fois

Contenu du snippet


Source / Exemple :


#include <stdio.h>
#include <alloc.h>

void main(void)
 {
   char far *chaine;
   int far *int_valeurs;
   float far *valeurs_flottantes;

   if ((chaine = (char *) farmalloc(50)))
     printf("Allocation réussie d\'une chaîne de 50 octets\n");
   else
     printf("Erreur d\'allocation pour chaine\n");
   if ((int_valeurs = (int *) farmalloc(100 * sizeof(int))) != NULL)
     printf("Allocation réussie pour int_valeurs[100]\n");
   else 
     printf("Erreur d\'allocation pour int_valeurs[100]\n");
   if ((valeurs_flottantes = (float *) farmalloc(25 * sizeof(float))) != NULL)
     printf("Allocation réussie pour valeurs_flottantes[25]\n");
   else
     printf("Erreur d\'allocation pour valeurs_flottantes[25]\n");
 }

A voir également

Ajouter un commentaire Commentaire
coyotedef
Messages postés
13
Date d'inscription
vendredi 4 octobre 2002
Statut
Membre
Dernière intervention
22 avril 2003

8 avril 2003 à 15:49
Bonjour,
Merci ton est tres interessant mais j aimerai toutefois avoir quelque precision.
La fonction farmalloc attribue t elle d elle meme l adresse memoire ou faut t il lui faire reference au haut du tas?
Je n'arrive pas a la faire tourner je compile avec lcc mais la librairie alloc.h fait appel a bien d autre librairies qui (a priori mon niveau ne peut pas le confirmer) decoulent du C++.
Ni a t il pas un autre moyen en C pur??
Merci

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.