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 :

GCC 4.7.3 - Char problème de mémoire VS String ?


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de cpcdos
    Homme Profil pro
    Ingé/concepteur chez Capgemini. Alstom APTIS. Concepteur de Felly autonomous vehicle software.
    Inscrit en
    Mai 2010
    Messages
    589
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingé/concepteur chez Capgemini. Alstom APTIS. Concepteur de Felly autonomous vehicle software.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 589
    Billets dans le blog
    1
    Par défaut GCC 4.7.3 - Char problème de mémoire VS String ?
    Bonjour,

    Ayant de grosses difficultés de gestion mémoire due aux altération des emplacements en mémoire des autres variables avec char* et char[] et les manipulation de chaines, j'ai consulté cette petite documentation qui m'a un peu ouvert l'esprit sur mon problème, qu'apparemment char* et char[] ne devraient exister. C'est par ce qu'ils allouent une zone à la mémoire en mode Yoooooolooooooo ? (sans faire gaffe aux autres variables déjà définies en mémoire?)

    Apparemment il serai plus efficace d'utiliser le type String que j'ai pas "Error, String was not declared in this scope"
    Je souhaiterai donc savoir si il existe une lib ou une include qui permettrai de supporter le type String sur GCC/DJGPP ?
    La plateforme utilisé : FreeDos x86 en DPMI

    Merci :-)
    Sébastien FAVIER
    Felly-software Autonomous vehicle software for everyone.
    co-kernel Cpcdos OSx un noyau 32bits simplifié et complet.. ou presque - Le fofo officiel c'est par ici.
    Les cours sur les systèmes c'est par là

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bien le bonjour;

    Sans plus m'avancer, j'ai l'impression que ton problème est surtout basé sur le C++ et non le C, je me trompe ?

    Un string en tant que tel n'existe pas en C, c'est une conception bien trop haut niveau pour ce langage.
    Il y a, sur dvp, l'ami franckh qui présente ici sa librairie de gestions de chaine de caractère : http://franckh.developpez.com/cstr/

  3. #3
    Membre Expert
    Avatar de cpcdos
    Homme Profil pro
    Ingé/concepteur chez Capgemini. Alstom APTIS. Concepteur de Felly autonomous vehicle software.
    Inscrit en
    Mai 2010
    Messages
    589
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingé/concepteur chez Capgemini. Alstom APTIS. Concepteur de Felly autonomous vehicle software.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 589
    Billets dans le blog
    1
    Par défaut
    Ah oui effectivement...
    Merci pour le lien je vais jeter un coup d’œil
    Sébastien FAVIER
    Felly-software Autonomous vehicle software for everyone.
    co-kernel Cpcdos OSx un noyau 32bits simplifié et complet.. ou presque - Le fofo officiel c'est par ici.
    Les cours sur les systèmes c'est par là

  4. #4
    Membre expérimenté
    Avatar de ChipsAlaMenthe
    Homme Profil pro
    Ingénieur en eau chaude et ballon rond
    Inscrit en
    Mai 2015
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur en eau chaude et ballon rond
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2015
    Messages : 138
    Par défaut
    Si ton problème est en C++:
    Ajoute en entête #include <String>

    Si c'est en C:
    Il faut utiliser les malloc pour les char*.
    Si c'est les char[], alors dans ce cas c'est une allocation fixe, et ça devrait marcher si la chaine est courte. ^^

  5. #5
    Membre Expert
    Avatar de cpcdos
    Homme Profil pro
    Ingé/concepteur chez Capgemini. Alstom APTIS. Concepteur de Felly autonomous vehicle software.
    Inscrit en
    Mai 2010
    Messages
    589
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingé/concepteur chez Capgemini. Alstom APTIS. Concepteur de Felly autonomous vehicle software.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 589
    Billets dans le blog
    1
    Par défaut
    Merci pour ta réponse,
    Etrange, concernant l'include String.h je ne trouve rien qui définit le type String, string.h

    J'ai pas mon PC avec mon code en main ce soir, mais imaginons que je dois faire face a malloc()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    char * MonTexte = malloc(10 * sizeof(char));
    MonTexte = "Thug life";
    printf(" Contenu:%s", Montexte);
    free(MonTexte);
    MonTexte = NULL;
    Ça semble correcte ?
    Sébastien FAVIER
    Felly-software Autonomous vehicle software for everyone.
    co-kernel Cpcdos OSx un noyau 32bits simplifié et complet.. ou presque - Le fofo officiel c'est par ici.
    Les cours sur les systèmes c'est par là

  6. #6
    Invité
    Invité(e)
    Par défaut
    Encore une fois, tu confonds C et C++.

    Le C ne fournit pas un type natif string.

    Par contre, le C++ le peut, lui : http://en.cppreference.com/w/cpp/header/string


    Donc la question est : Que veux-tu ? Du C ou du C++ ?

    Si c'est du C que tu souhaites, ce que tu fais est incorrect.
    Pourquoi ? Je t'invite à lire le tuto ici : http://nicolasj.developpez.com/articles/libc/string/

  7. #7
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    gros attention!

    Le C++ définit std::string, pas String avec une majuscule.
    Et l'entête à inclure est <string>, pas <string.h> (qu'il convient de remplacer, en C++, par <cstring>)

Discussions similaires

  1. [WORD]Problème de mémoire
    Par Dnx dans le forum VBA Word
    Réponses: 17
    Dernier message: 05/10/2005, 14h48
  2. [Tomcat][Spring] Problème utilisation mémoire
    Par Wutintin dans le forum Hibernate
    Réponses: 12
    Dernier message: 08/09/2005, 14h57
  3. [Crystal Report]Problème de mémoire avec le moteur RDC
    Par sur_uix dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 26/05/2005, 09h09
  4. Problème de mémoire avec BDE
    Par Machuet dans le forum Bases de données
    Réponses: 3
    Dernier message: 13/07/2004, 10h11
  5. Problème de mémoire Affichage images
    Par Repti dans le forum C++Builder
    Réponses: 6
    Dernier message: 29/03/2004, 20h06

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