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

 Probleme de realloc sur un tableau 2d

Forum : C
Sous Catégorie : Aucune
Type du sujet : Sujet Normale
FAQ : FAQ C

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


POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM C

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
selox
Nouveau membre
Inscrit : 06/06/2007
Messages : 1
Message
#135465
Posté le 06/06/07 à 23:35
Bonjour, j\'ai un probleme sur la fonction realloc.

J\'ai un tableau de char dynamique à deux dimensions :

[CODE]char **creer_grille(int col,int lignes) {

int i,j;

char **p4=malloc(lignes*sizeof(*p4));
if(p4==NULL) { printf(\"L\'allocation n\'a pas march\\n\"); exit(EXIT_FAILURE); }

for(i=0;i<lignes;i++) {
p4[i]=malloc(col*sizeof(p4[i]));
if(p4[i]==NULL) { printf(\"L\'allocation n\'a pas march\\n\"); exit(EXIT_FAILURE); } }

for(i=0;i<lignes;i++)
for(j=0;j<col;j++)
p4[i][j]=\' \';

return p4; }[/CODE]

J\'ai une fonction \'placerpion\' qui lorsque la colonne choisie par l\'utilisateur est remplie, on ajoute 10 lignes au tableau (via la fonction realloc).

Mais ça me fait toujours un segmentation fault lors de l\'execution, et je ne vois pas trop d\'où vient le probleme...

[CODE] void placerpion(char **p4,int colonnes,int lignes,char *joueuractuel) {

int choixcol,i,j;

if(*joueuractuel==\'X\' || *joueuractuel==\'O\') {

printf(\"Choisissez la colonnes o vous voulez placer votre pion : \");
scanf(\"%d\",&choixcol);

if(p4[(lignes-1)][choixcol] != \' \') { /* Si colonne remplie, alors allouer 10 lignes de + */
realloc(p4,(lignes+=10)*sizeof(p4));
for(i=(lignes-10);i<lignes;i++)
p4[i]=malloc(colonnes*sizeof(p4));

for(i=(lignes-10);i<lignes;i++) { /* on remplit les nouvelles lignes de \' \' */
for(j=0;j<colonnes;j++)
p4[i][j]=\' \'; } }


for(i=0;i<lignes;i++) /* Placer le pion du joueur à la case voulue */
if(p4[i][choixcol] == \' \') {
p4[i][choixcol]=*joueuractuel;
break; } } }[/CODE]

Merci d\'avance

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

vortex666
Modérateur :
- C & C++
- OpenGL
- Delphi
Chef de projet(s) :
- Vortez3DEngine

Avatar de vortex666
Inscrit : 20/09/2004
Messages : 483
Message
#136000
Posté le 13/06/07 à 18:28
Pour ce genre de situation, ou il faut une array dynamique, je te conseil d'utuliser le container "vector" de la STL.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 


    PAGE : [1]



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