Ayuda con codigo en C
Publicado por des (7 intervenciones) el 05/01/2010 06:24:18
El programa es bastante simple solo que estoy aprendiendo a manejar punteros en C y dobles punteros y al compilarlo no da ningun error pero al ejecutarlo a veces va, y a veces falla entonces a ver si algun experto ve algun fallo en el codigo directamente:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main(){
int** numeros;
int numero,columnas,filas,x,y,ok;
//Reservamos las filas que vamos a rellenar
do{
printf("Cuantas filas vas a rellenar: ");
ok=scanf("%d",&columnas);
while(getchar()!='\n');
}while(!ok);
numeros=(int**)malloc(columnas * sizeof(int*));
//Reservamos las filas que vamos a rellenar
//Rellenamos las filas con numeros, cada fila con los numeros que diga que va a poner.
for(x=0;x<columnas;x++){
printf("Cuantos numeros en la fila %d: ",x+1);
scanf("%d",&filas);
getchar();
*(numeros+x)=(int*)malloc(filas+1 * sizeof(int));
for(y=1;y<=filas;y++){
printf("Numero %d: ",y);
scanf("%d",&numero);
*(*(numeros+x)+y)=numero;
}
*(*(numeros+x))=filas;
}
//Rellenamos las filas con numeros, cada fila con los numeros que diga que va a poner.
//Mostramos cada fila con sus respectivos numeros
for(x=0;x<columnas;x++){
printf("\nNumeros fila %d: ",x+1);
for(y=1;y<=*(*(numeros+x));y++){
printf("%d ",*(*(numeros+x)+y));
}
printf("\n");
}
//Liberamos el malloc
free(numeros);
}
Por cierto si hay algun consejo sobre programacion en general tambien es bienvenido ^^
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main(){
int** numeros;
int numero,columnas,filas,x,y,ok;
//Reservamos las filas que vamos a rellenar
do{
printf("Cuantas filas vas a rellenar: ");
ok=scanf("%d",&columnas);
while(getchar()!='\n');
}while(!ok);
numeros=(int**)malloc(columnas * sizeof(int*));
//Reservamos las filas que vamos a rellenar
//Rellenamos las filas con numeros, cada fila con los numeros que diga que va a poner.
for(x=0;x<columnas;x++){
printf("Cuantos numeros en la fila %d: ",x+1);
scanf("%d",&filas);
getchar();
*(numeros+x)=(int*)malloc(filas+1 * sizeof(int));
for(y=1;y<=filas;y++){
printf("Numero %d: ",y);
scanf("%d",&numero);
*(*(numeros+x)+y)=numero;
}
*(*(numeros+x))=filas;
}
//Rellenamos las filas con numeros, cada fila con los numeros que diga que va a poner.
//Mostramos cada fila con sus respectivos numeros
for(x=0;x<columnas;x++){
printf("\nNumeros fila %d: ",x+1);
for(y=1;y<=*(*(numeros+x));y++){
printf("%d ",*(*(numeros+x)+y));
}
printf("\n");
}
//Liberamos el malloc
free(numeros);
}
Por cierto si hay algun consejo sobre programacion en general tambien es bienvenido ^^
Valora esta pregunta


0