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


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Inicializar una matriz
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Inicializar una matriz  (Leído 1,002 veces)
JonaLamper


Desconectado Desconectado

Mensajes: 393



Ver Perfil
Inicializar una matriz
« en: 26 Febrero 2016, 16:48 pm »

Buenas,

Tengo que inicializar una matriz con un tamaño DIM. Este DIM se lee de un archivo y me dicen que debe ser constante. Entonces...  ¿cómo demonios hago eso? Porque si necesito que el programa que compile para leer el archivo, ¿cómo voy a establecer esa constante con el valor leído?  :huh:


En línea

Utilizar palabras para hablar de palabras es como utilizar un lápiz para hacer un dibujo de ese lápiz sobre el mismo lápiz.
BlackM4ster


Desconectado Desconectado

Mensajes: 499


Error, el teclado no funciona. Pulse F1 para continuar


Ver Perfil WWW
Re: Inicializar una matriz
« Respuesta #1 en: 26 Febrero 2016, 16:59 pm »

alojando memoria dinámicamente

int* M = (int*)malloc(sizeof(int) * DIM); // C
o
int* M = new int[DIM]; //C++


« Última modificación: 26 Febrero 2016, 17:02 pm por BlackM4ster » En línea

- Pásate por mi web -
https://codeisc.com
furciorifa

Desconectado Desconectado

Mensajes: 94


Ver Perfil
Re: Inicializar una matriz
« Respuesta #2 en: 7 Marzo 2016, 07:04 am »

Pues mira hay dos opciones

1 Compilar con gcc archivo.c -std=c99 en GNU/Linux y hacer lo siguiente:
Código
  1. int matriz[DIM][DIM]

2. Muchos protestarán porque no conocen los nuevos estándares así que a la antigua
ocupas
Código
  1. #include<stdlib.h>
Código
  1. int **matriz= malloc( sizeof(int *) * DIM + sizeof(int) * DIM* DIM);
  2.             matriz[0] = (int*)(matriz + DIM);
  3.        for (i = 1; i < DIM; i++) matriz[i] = matriz[i - 1] + DIM;
  4.  
Bueno en fin puedes hacer cualquiera de las 2
3. Si utilizas el 2. debes liberar memoria así
Código
  1. free(matriz[0]);

y después
Código
  1. free(m);
deben ser en ese orden esto es para evitar memory leaks (fugas de memoria)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Inicializar matriz? « 1 2 »
Java
monsefoster 10 7,319 Último mensaje 18 Noviembre 2009, 06:06 am
por juancho77
Declarar e inicializar matriz de objetos
Java
alzehimer_cerebral 1 4,710 Último mensaje 17 Noviembre 2009, 19:07 pm
por Leyer
Dudita: Inicializar matriz desde función sin punteros, si es posible.
Programación C/C++
leosansan 2 1,432 Último mensaje 23 Diciembre 2013, 18:47 pm
por leosansan
Fallo en inicializar matriz
Java
BJM 1 1,158 Último mensaje 5 Junio 2014, 20:36 pm
por gordo23
como inicializar una matriz char**
Programación C/C++
sebapoli00 5 1,260 Último mensaje 3 Abril 2019, 17:44 pm
por K-YreX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines