IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Problème avec sprintf


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2010
    Messages : 124
    Points : 52
    Points
    52
    Par défaut Problème avec sprintf
    Bonjour,

    J'utilise un code sous c et voici mon probleme :
    J'ai voulu modifié le nom d'un fichier (filename1), en ajoutant le terme 'Stress' dans la chaine de caractère de son nom. Pour cela je suis partie de l'écriture initiale donnée dans le programme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sprintf( filename1, "%s/%s.dat", outputPath, materialSwarm->name );
    J'ai crée une chaine de caractère, appelée nameStress, et qui vaut 'Stress' :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    nameStress = Memory_Alloc_Array_Unnamed( char, 6 + 1);
    	    nameStress="Stress";
    Et enfin j'ai intégré nameStress dans la définition de filename1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sprintf( filename1, "%s/%s.%s.dat", outputPath, nameStress, materialSwarm->name );
    AU débugage, j'ai une erreur de segmentation à la ligne nameStress="Stress".
    J'ai aussi essayé de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sprintf( nameStress, "Stress");
    ,

    mais cela me retourne la même erreur au même endroit.

    Quelqu'un saurait m'aider ? Comment faire pour donner un contenu xxx à une chaîne de caractère de nom nnn ?

  2. #2
    Membre confirmé Avatar de Flow_75
    Femme Profil pro
    Ingénieure
    Inscrit en
    Mai 2005
    Messages
    1 096
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieure
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 096
    Points : 633
    Points
    633
    Par défaut
    pour initialiser une chaine de caracteres c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strncpy(nameStress, "Stress", 6);

  3. #3
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Bonjour,
    Pourrait-on voir le code de Memory_Alloc_Array_Unnamed ?
    Toute question technique envoyée en MP ira directement à la poubelle

    Un code ne marchera jamais, il n'a jamais reçu la capacité de se déplacer.
    Inutile donc de dire "ça marche pas", donnez plutôt des informations précises afin de mieux pouvoir vous aider.


    Grand gourou de la -attitude

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 372
    Points : 23 628
    Points
    23 628
    Par défaut
    Bonjour,

    Ouille ! Tu te donnes beaucoup de mal pour rien.

    Citation Envoyé par latitude38 Voir le message
    J'ai crée une chaine de caractère, appelée nameStress, et qui vaut 'Stress' :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    nameStress = Memory_Alloc_Array_Unnamed( char, 6 + 1);
    	    nameStress="Stress";
    Tu ne peux pas copier une chaîne de caractères de cette façon. Ceci va copier l'adresse de la chaîne constante « Stress » dans le pointeur nameStress. Au final, tu verras apparaître ce que tu veux, mais tu auras définitivement perdu l'adresse de la mémoire que tu as allouée. Tu ne pourras donc plus la libérer et, surtout, en aucun la chaîne en question n'aura été copiée dedans. Voir la FAQ.

    Et enfin j'ai intégré nameStress dans la définition de filename1 :
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    sprintf( filename1, "%s/%s.%s.dat", outputPath, nameStress, materialSwarm->name );
    C'est pas mal, mais tu aurais pu directement intégrer ta chaîne dans ton sprintf() :

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    sprintf( filename1, "%s/%s.%s.dat", outputPath, "Stress", materialSwarm->name );

    AU débugage, j'ai une erreur de segmentation à la ligne nameStress="Stress".
    J'ai aussi essayé de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sprintf( nameStress, "Stress");
    ,

    mais cela me retourne la même erreur au même endroit.
    Il est possible que cela ne vienne pas de nameStress, mais des autres variables.

    Quelqu'un saurait m'aider ? Comment faire pour donner un contenu xxx à une chaîne de caractère de nom nnn ?
    Il suffit d'utiliser strcpy() ou strncpy(). Si tu veux ajouter une chaîne à une autre chaîne déjà existante, utilise strcat() ou strncat().


    Citation Envoyé par Flob91 Voir le message
    pour initialiser une chaine de caracteres c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strncpy(nameStress, "Stress", 6);
    Attention aux fautes d'inattention : ce faisant, tu omets le zéro final et tu risques la segfault. Trop de sécurité peut s'avérer nocif dans ce cas. Un strcpy() normal fonctionnerait quelque soit la taille de la chaîne.

  5. #5
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 372
    Points : 23 628
    Points
    23 628
    Par défaut
    Citation Envoyé par supersnail Voir le message
    Bonjour,
    Pourrait-on voir le code de Memory_Alloc_Array_Unnamed ?
    Il semblerait que ce soit du MPI.

  6. #6
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Bonjour,

    C'est quoi ça, le MPI?
    J'ai jamais entendu parler de ça...
    Toute question technique envoyée en MP ira directement à la poubelle

    Un code ne marchera jamais, il n'a jamais reçu la capacité de se déplacer.
    Inutile donc de dire "ça marche pas", donnez plutôt des informations précises afin de mieux pouvoir vous aider.


    Grand gourou de la -attitude

  7. #7
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 372
    Points : 23 628
    Points
    23 628
    Par défaut
    Citation Envoyé par supersnail Voir le message
    C'est quoi ça, le MPI?
    J'ai jamais entendu parler de ça...
    est ton ami !

    MPI. C'est une bibliothèque qui, avec PVM, a été très utilisée sur les clusters.

  8. #8
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Moi je trouvais des trucs de lycée ^^ (MPI = Mesures Physiques et Informatique )
    Toute question technique envoyée en MP ira directement à la poubelle

    Un code ne marchera jamais, il n'a jamais reçu la capacité de se déplacer.
    Inutile donc de dire "ça marche pas", donnez plutôt des informations précises afin de mieux pouvoir vous aider.


    Grand gourou de la -attitude

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2010
    Messages : 124
    Points : 52
    Points
    52
    Par défaut
    Oui,
    le reste du programme est assez compliqué,
    'MPI' signifie que le code tourne avec plusieurs processeurs en parallèle.

    Quand à moi, je pense que la solution d'intégrer directement la chaine de caractère est in téressante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sprintf( filename1, "%s/%s.%s.dat", outputPath, "Stress", materialSwarm->name );
    ...mais cela me retourne à une erreur du même type sur la ligne !
    j'ai essayé de changer cela en ne mettant que la chaîne Stress dans le nom de Filename1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    filename1 = Memory_Alloc_Array_Unnamed( char, 6 +1+ 3 +1 );
    sprintf( filename1, "%s.dat", "Stress" );
    Et j'ai aussi une erreur de segmentation à cette dernière ligne. ..?

  10. #10
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Points : 1 750
    Points
    1 750
    Par défaut
    Je ne connais pas la fonction Memory_Alloc_Array_Unnamed personnellement, mais je pense que c'est elle qui met le boxon. Si ton printf provoque un crash, c'est que tu écris dans une zone mémoire interdite. Soit la mémoire n'est pas allouée, soit elle ne l'est pas suffisamment.
    Toute fonction d'allocation mémoire est censée retourner une valeur spécifique en cas d'échec. Qu'en est-il de cette fonction ? Je ne vois aucune vérification de la valeur retour.
    D'ailleurs, est-ce réellement une fonction ou une macro plutôt ? La présence d'un char comme premier paramètre semble le prouver.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2010
    Messages : 124
    Points : 52
    Points
    52
    Par défaut
    Oui,
    le reste du programme est assez compliqué,
    'MPI' signifie que le code tourne avec plusieurs processeurs en parallèle.

    Quand à moi, je pense que la solution d'intégrer directement la chaine de caractère est in téressante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sprintf( filename1, "%s/%s.%s.dat", outputPath, "Stress", materialSwarm->name );
    ...mais cela me retourne à une erreur du même type sur la ligne !
    j'ai essayé de changer cela en ne mettant que la chaîne Stress dans le nom de Filename1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    filename1 = Memory_Alloc_Array_Unnamed( char, 6 +1+ 3 +1 );
    sprintf( filename1, "%s.dat", "Stress" );
    Et j'ai aussi une erreur de segmentation à cette dernière ligne. ..?

  12. #12
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Bonjour,

    De plus dans ton malloc "bizarre", on peut voir ce genre de trucs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    filename1 = Memory_Alloc_Array_Unnamed( char, 6 +1+ 3 +1 );
    Ces chiffres correspondent à quoi?
    T'as vérifié que filename1 n'atait pas NULL sinon?
    Toute question technique envoyée en MP ira directement à la poubelle

    Un code ne marchera jamais, il n'a jamais reçu la capacité de se déplacer.
    Inutile donc de dire "ça marche pas", donnez plutôt des informations précises afin de mieux pouvoir vous aider.


    Grand gourou de la -attitude

  13. #13
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Points : 1 750
    Points
    1 750
    Par défaut
    Comme je disais précédemment, il faut toujours vérifier la valeur du pointeur lorsqu'on alloue de la mémoire. Il faut commencer par le commencement... Ensuite, on verra, en fonction de ce que cela donne.
    Car par exemple si on fait écrire printf à l'adresse 0, la fonction n'est pour autant pas responsable du crash qui va se produire. D'où le fait de chercher à savoir à quelle adresse la fonction écrit.

    Ils nous faut aussi des infos sur Memory_Alloc_Array_Unnamed car on ne sait pas comment se comporte la fonction (ou macro ?) en cas d'échec.

  14. #14
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 372
    Points : 23 628
    Points
    23 628
    Par défaut
    Citation Envoyé par latitude38 Voir le message
    j'ai essayé de changer cela en ne mettant que la chaîne Stress dans le nom de Filename1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    filename1 = Memory_Alloc_Array_Unnamed( char, 6 +1+ 3 +1 );
    sprintf( filename1, "%s.dat", "Stress" );
    Et j'ai aussi une erreur de segmentation à cette dernière ligne. ..?
    Essaie déjà d'allouer plus de mémoire pour ton nom de fichier. Accorde-lui grassement 256 caractères pour le principe, plutôt que les compter un par un.

    Citation Envoyé par supersnail Voir le message
    Bonjour,

    De plus dans ton malloc "bizarre", on peut voir ce genre de trucs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    filename1 = Memory_Alloc_Array_Unnamed( char, 6 +1+ 3 +1 );
    Ces chiffres correspondent à quoi?
    T'as vérifié que filename1 n'atait pas NULL sinon?
    6: Stress
    1: .
    3: dat
    1: '\0'

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2010
    Messages : 124
    Points : 52
    Points
    52
    Par défaut
    Oui,
    merci de toutes vos réponses. Je vais essayer d'allouer une plus large mémoire pour monfichier filename1.
    Quand à la fonction 'Memory_Alloc_Array_Unnamed', il est bien possible que l'erreur vienne d'elle, mais j'avais un peu peur d'aller voir précisément ce qui se cachait dessous, car voici ce que j'ai trouvé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #ifndef MEMORY_STATS
    		/** Allocates a 1D array of a primitive or class. */
    		#define Memory_Alloc_Array( type, arrayLength, name ) \
    			(type*) _Memory_Alloc_Array_Macro( sizeof(type), arrayLength )
    	#else
    		#define Memory_Alloc_Array( type, arrayLength, name ) \
    			(type*) _Memory_Alloc_Array_Func( sizeof(type), (arrayLength), #type, (name), __FILE__, __func__, __LINE__ )
    	#endif
     
    	/** Allocates a 1D array of a primitive or class without a name. */
    	#define Memory_Alloc_Array_Unnamed( type, arrayLength ) \
    		Memory_Alloc_Array( type, (arrayLength), Name_Invalid )
    puis, dans le même fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #define _Memory_Alloc_Array_Macro( itemSize, arrayLength ) \
    		_Memory_InternalMalloc( (itemSize) * (arrayLength) )

    puis dan le fichier .c (avant c'était du .h) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    void* _Memory_InternalMalloc( SizeT size ) {
    	void* result;
    	void* data;
     
    	if( !size )
    	  return NULL;
     
    #ifdef NOEXPERIMENT			
    	result = malloc( size );
    	if ( result == NULL ) {
    		Memory_OutOfMemoryError( size );
    	}
    	return result;
    #else
     
    	if( stgMemory ){
    		unsigned long prev = stgMemory->stgCurrentMemory;
    		stgMemory->stgCurrentMemory += size;
    		stgMemory->stgPeakMemory = MAX( stgMemory->stgCurrentMemory, prev );
    	}
     
    	result = malloc( size + sizeof( MemoryTag ) );
    	if ( result == NULL ) {
    		result = malloc( size + sizeof( MemoryTag ) );
    		if ( result == NULL ) {
    			if(stgMemory){
    				Memory_OutOfMemoryError( size + sizeof( MemoryTag ) );
    			}
    			else{
    				fprintf( stderr, "Out of memory in %s\n", __func__ );
    			}
    		}
    	}
    	data = (void*)((ArithPointer)result + sizeof( MemoryTag ));
     
    	Memory_CountGet( data ) = 0;
    	Memory_SizeGet( data ) = size;
     
    	return data;
    #endif
    }
    pour l'autre fonction je trouve :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    void* _Memory_Alloc_Array_Func(
    	SizeT itemSize,
    	Index arrayLength,
    	Type type,
    	Name name,
    	const char* fileName,
    	const char* funcName,
    	int lineNumber )
    {
    	Pointer result;
    	SizeT size;
     
    	MemoryPointer* memoryPointer;
     
    	size = Memory_Length_1DArray( itemSize, arrayLength );
    	result = _Memory_InternalMalloc( size );
     
    	if ( stgMemory->enable ) {
    		memoryPointer = MemoryPointer_New( result, stgMemory->stamp++, type, name, fileName, funcName, lineNumber, MEMORY_1DARRAY, itemSize, size );
    		memoryPointer->length.oneD = arrayLength;
     
    		Memory_Add_Pointer( memoryPointer );
    	}
    	return result;
    .

    Je n'y comprend pas grand chose personnellement. Je peux juste dire qu'il s'agit d'un langage en c, trituré pour donner ce qui ressemble à du c++ (pour des besoins particuliers). Si quelqu'un à une idée quelconque concernant une éventuelle erreur de segmentation qui peut être due à cela ? Je pensais pour ma part que de créer le nouveau fichier filename1 n'était pas prévu dans le cadre de cette fonction (probleme de mémoire ou qqch comme ca).

  16. #16
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Bonjour,

    Les vérifications mémoire sont vérifiées en interne par ta bibliothèque,donc je pense que le problème ne vient pas de là...

    Cependant essaie de tracer (soit avec des printf, soit avec un débuggeur) vers où pointe filename1... (tu peux faire par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf("%x",filename1);
    , ce qui retournera l'adresse que pointe filename1
    Toute question technique envoyée en MP ira directement à la poubelle

    Un code ne marchera jamais, il n'a jamais reçu la capacité de se déplacer.
    Inutile donc de dire "ça marche pas", donnez plutôt des informations précises afin de mieux pouvoir vous aider.


    Grand gourou de la -attitude

  17. #17
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Points : 1 750
    Points
    1 750
    Par défaut
    Pourquoi ne pas utiliser un simple malloc pour faire l'allocation mémoire ?

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2010
    Messages : 124
    Points : 52
    Points
    52
    Par défaut
    bonjour,

    J'essaie en allouatn bcp plus de mémoire (par exemple 256) et cela me retourne la même erreur.
    En imprimant l'adresse de filemname1, j'obtient :
    ffffffa0

    Maintenant, je ne sais pas pourquoi la fonction ' Memory_Alloc_Array_Unnamed ' est mieux que 'malloc' mais j'ai confiance dans les autres développeurs...

  19. #19
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Hmm... je parie que tu as écrit
    au lieu de Si c'est le cas, corrige cette erreur (il faut une petite étoile après le char )

    En fait,u la réponse du printf, ton pointeur est carrément invalide,donc pas étonnant que ça buggue. Et vu qu'un seul octet du pointeur apparaît, t'as dû oublié l'étoile pour le char*
    Toute question technique envoyée en MP ira directement à la poubelle

    Un code ne marchera jamais, il n'a jamais reçu la capacité de se déplacer.
    Inutile donc de dire "ça marche pas", donnez plutôt des informations précises afin de mieux pouvoir vous aider.


    Grand gourou de la -attitude

  20. #20
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Points : 1 750
    Points
    1 750
    Par défaut
    Maintenant, je ne sais pas pourquoi la fonction ' Memory_Alloc_Array_Unnamed ' est mieux que 'malloc' mais j'ai confiance dans les autres développeurs...
    hum... malloc fait partie de la norme C.
    De quels autres développeurs parles-tu ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. sprintf() problème avec XP seulement
    Par devdebutantajax dans le forum Débuter
    Réponses: 8
    Dernier message: 08/03/2009, 17h13
  2. Problème avec sprintf
    Par snake264 dans le forum C++
    Réponses: 10
    Dernier message: 20/04/2008, 17h12
  3. probléme avec sprintf() sous linux
    Par moooona dans le forum C++
    Réponses: 5
    Dernier message: 11/04/2008, 01h48
  4. Problème avec sprintf
    Par LinuxUser dans le forum C
    Réponses: 9
    Dernier message: 18/05/2007, 15h34
  5. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo