Ayuda con matrices de cadenas

Iniciado por negux, 29 Junio 2010, 01:49 AM

0 Miembros y 2 Visitantes están viendo este tema.

cbug

Esta es una opción:

#include<stdio.h>
#include<stdlib.h>

int main()
{
 char *matriz[2][2];
 int i, j;
 for(i = 0; i < 2; i++)
   for(j = 0; j < 2; j++){
     matriz[j][i] = malloc(sizeof(char)*10);
     fgets(matriz[j][i], sizeof(char)*10, stdin);
   }
 for(i = 0; i < 2; i++){
   for(j = 0; j < 2; j++){
     printf("\t %s \t", matriz[i][j]);
   }
   printf("\n");
 }      
 return 0;
}


Ahora bien, lee las chinchetas del foro para saber porque no usar scanf(), como tampoco es bueno utilizar fflush(stdin).

nicolas_cof

Cita de: cbug en 29 Junio 2010, 03:17 AM
Esta es una opción:

#include<stdio.h>
#include<stdlib.h>

int main()
{
 char *matriz[2][2];
 int i, j;
 for(i = 0; i < 2; i++)
   for(j = 0; j < 2; j++){
     matriz[j][i] = malloc(sizeof(char)*10);
     fgets(matriz[j][i], sizeof(char)*10, stdin);
   }
 for(i = 0; i < 2; i++){
   for(j = 0; j < 2; j++){
     printf("\t %s \t", matriz[i][j]);
   }
   printf("\n");
 }      
 return 0;
}


Ahora bien, lee las chinchetas del foro para saber porque no usar scanf(), como tampoco es bueno utilizar fflush(stdin).

cbug, acuerdate de utilizar la funcion free() para no dejar memory leaks...

Salu10.

cbug

Citarcbug, acuerdate de utilizar la funcion free() para no dejar memory leaks...

Muy cierto, gracias por recomendarmelo... hace mucho que no tengo práctica en C, y a veces esos detalles son importantes y muy frecuentes de olvidárselos.

.:BlackCoder:.

Al igual que nicolas, y como ya lo menciones, lo mejor seria un arreglo de estructuras... Y pes no creo que el que hizo el post sepa memoria dinamica  :xD

Si tienes tiempo y ganas, pes hazlo con los 2 para que tu decidas que es mejor...

Saludos
"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja




negux

ps memoria dinamica si se, tal vez no al nivel de ustedes; :P
y si no me queda claro algo, mejor pregunto: xD claro despues de leer.
Gracias por sus respuesta, han sido de bastante ayuda
saludos