elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / (Problema)Matrices Dinámicas de Caracteres! en: 5 Marzo 2015, 16:59 pm
 Espero no estar infringiendo alguna regla del foro, de ser así, pido disculpas de antemano.

 Leí las reglas para poder publicar un nuevo tema. Busque sobre temas relacionados y lo que encontré no me fue de mucha ayuda, espero puedan ayudarme en este tema.

 Estoy elaborando un proyecto, dicho proyecto es elaborar una sopa de letras con matrices dinámicas(que el jugador pueda elegir el tamaño de la sopa de letras). Mi problema radica a la hora de modificar, imprimir e insertar en la matriz dinámica.

 Probé en menor escala el siguiente código para tratar de hallar solución a mi problema y logre que realizara perfectamente todas las operaciones en el main, pero, si separo las operaciones en diferentes funciones, genera un error en tiempo de ejecución.

Citar
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

void asignar(char **matriz, int filas, int columnas);
void iniciar(char **matriz, int filas, int columnas);
void imprimir(char **matriz, int filas, int columnas);
void liberar(char **matriz, int filas, int columnas);

int main()
{   
   char **matriz = NULL;
   int columnas, filas;
   
   printf("\n\t CREANDO MATRIZ DINAMICA!");
   printf("\n\n\t# de filas: ");
   scanf("%d",&filas);
   printf("\n\t# de Columnas: ");
   scanf("%d",&columnas);
   
   asignar(matriz, filas, columnas);
   iniciar(matriz, filas, columnas);
   imprimir(matriz, filas, columnas);
   liberar(matriz, filas, columnas);
   
   getch();
   return 0;
   }
   
void asignar(char **matriz, int filas, int columnas)
{
   //ASIGNAR MEMORIA PARA EL ARRAY DE PUNTEROS
   matriz = ((char **)malloc(sizeof(char*)*filas));
       
   
   //ASIGNAR MEMORIA PARA CADA FILA
   for(int i=0;i<filas;i+=1)
   {   
      matriz = ((char *)malloc(sizeof(char*)*columnas));
      }
   }
   
void iniciar(char **matriz, int filas, int columnas)
{
   //INICIAR LOS ELEMENTOS DE LA MATRIZ DINAMICA
   for(int i=0;i<filas;i+=1)
   {   
      for(int j=0;j<columnas;j+=1)
      {   
         *(*(matriz+i)+j)='.';
         }
      }
   }
   
void imprimir(char **matriz, int filas, int columnas)
{
   //IMPRIMIENDO MATRIZ EN PANTALLA
   system("cls");
   for(int i=0;i<filas;i+=1)
   {   
      puts("\n");
      for(int j=0;j<columnas;j+=1)
      {   
         printf(" %c", *(*(matriz+i)+j));
         }
      }
   }
   
void liberar(char **matriz, int filas, int columnas)
{
   //LIBERAR MEMORIA ASIGNADA A CADA FILA
   for(int i=0;i<filas;i+=1)
   {   
      free(matriz+i);
      }
      
   //LIBERAR LA MEMORIA ASIGNADA AL ARRAY DE PUNTEROS
   free(matriz);
   }

Acaso estoy enviando los parámetros de la matriz mal?
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines