RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Serv: irc.irc-land.org
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 Simple question sur les pointeurs char *

Forum : C & C++ - CONSOLE
Sous Catégorie : Console
Type du sujet : Sujet Normale
FAQ : FAQ C & C++ - CONSOLE

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET NON RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


PAGE : [1]

POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM C & C++ - CONSOLE

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
chris3000
Nouveau membre
Inscrit : 15/11/2006
Messages : 2
Message
#115840
Posté le 15/11/06 à 17:42
Je reçois cette erreur quand j'execute le program : Unhandled exception at 0x004115ae in LesPointeur2.exe: 0xC0000005: Access violation writing location 0x00417a28.

Je comprends que "Hello World" reçoit les propriétés d'une constante.
Mais je ne l'ai jamais déclaré comme telle (const char *MyString).

Pourquoi je ne peux pas directement changer un caractère à l'aide d'un pointeur comme dans le code suivant :


char *MyString= "Hello World"; char *CharPtr; CharPtr= MyString; *CharPtr='m'; CharPtr++; *CharPtr='o'; cout<<MyString;


J'aimerais avoir une solution avec les pointeurs seulement. Je ne veux pas une solution avec des tableaux ou des type string.

Merci
Chris3000

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

Spirit
Superviseur :
- C & C++
Modérateur :
- PHP
- Javascript
- MySQL
Avatar de Spirit
Inscrit : 07/04/2004
Messages : 1946
Message
#115922
Posté le 16/11/06 à 00:42
t'as un pointeur ok, mais tu veux l'utiliser en tableau là, et tu n'initialises pas sa taille (opérateur new ou malloc(C))
__________________________
Spirit - modérateur casu ^-^'

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

acid__
Membre newbie
Inscrit : 19/07/2004
Messages : 39
Message
#116010
Posté le 16/11/06 à 21:57
MyString est un pointeur sur une chaine ...
Tu affectes un autre pointeur sur le debut de ta chaine. Jusque la ok.
Apres tu peux te deplacer dans cette chaine et en lire le contenu sans problemes.

Par contre tu ne peux pas en modifier le contenu.
Cela provient de la maniere dont sont crees les executables.
Ta chaine "MyString" est ecrite dans un espace protege (string table) de ton binaire (que tu peux voir avec la commande "strings" sous linux).

Si tu veux pouvoir modifier ta string il te faut: allouer un espace memoire suffisant, copier dedans, puis modifier cet espace memoire (heap).
Allouer un espace non-protege, signife soit appeler malloc (new en C++, et si tu veux allouer un tableau de char new[] est l'operateur correct), soit declarer un tableau de taille suffisante (par ex. char pString[250];)

Ensuite le reste devrait fonctionner.

Pour plus de renseignements sur les sections d'un binaire voici quelques mots clefs : elf, objdump, nm, stabs

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

chris3000
Nouveau membre
Inscrit : 15/11/2006
Messages : 2
Message
#116020
Posté le 17/11/06 à 01:45
Je savais déjà que c'était possible avec un tableau. Mais ce que je veux savoir
c'est si ça se fait a l'aide de pointeurs seulement.

On oublie les tableaux et les types string la. Et pour ce qui est de malloc ou new, ça donne le meme résultat.

Je trouve ça étrange que mon char * soit un constante sans que je le demande. Et en plus dans les vieilles versions de visual c++ le code de mon message original fonctionnait.

Merci
Chris3000

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 
POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

PREMIERE PAGE

PAGE PRECEDENTE Page précédente

Page suivante

PAGE SUIVANTE DERNIERE PAGE

FORUM C & C++ - CONSOLE



    PAGE : [1]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.