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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


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


Desconectado Desconectado

Mensajes: 366



Ver Perfil
matriz de punteros de una dimensión - liberar memoria[C]
« en: 10 Junio 2016, 21:28 pm »

Hola, gente.
Tengo una pequeña duda con él programara que dejo a continuación y es si esta bien liberada la memoria. -

Código
  1. /*
  2.  matriz de punteros de una dimensión.
  3. */
  4.  
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <time.h>
  8.  
  9. #define MAX 5
  10.  
  11. int main(void) {
  12. int *arr[MAX], i;
  13. srand(time(NULL));
  14.  
  15. for( i=0; i<MAX; i++ ){
  16. *(arr+i) = (int*)malloc(sizeof(int));
  17. **(arr+i) = rand() % 100;
  18. printf( "\n %d", **(arr+i) );
  19. }
  20. for( i=0; i<MAX; i++ ){
  21. free(*(arr+i));
  22. }
  23.  
  24.  
  25. return 0;
  26.  
  27. }
Si tienen tiempo y lo desearían necesitaría un poco de teoría al respecto si esta mal como si estuviera bien. -
Saludos y desde muchas gracias como siempre.-


En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: matriz de punteros de una dimensión - liberar memoria[C]
« Respuesta #1 en: 10 Junio 2016, 22:20 pm »

La respuesta es si, si esta bien la forma en la que liberas memoria.

Ahira que tienes un arreglo de apuntadores.

Pero solo asignas un int a cada apuntador, cuando podrias asugnar a un solo apuntador espacio para N elemntos int

No seria mas facil asignar solo espacio para MAX elementos..
Código
  1. int *arr = calloc(MAX,sizeof(int));
  2. for( i=0; i<MAX; i++ ){
  3. *(arr+i) = rand() % 100;
  4. printf( "\n %d", *(arr+i) );
  5. }
  6. free(arr);
  7.  

Asi te ahorras un ciclo

Saludos


« Última modificación: 10 Junio 2016, 22:27 pm por AlbertoBSD » En línea

NOB2014


Desconectado Desconectado

Mensajes: 366



Ver Perfil
Re: matriz de punteros de una dimensión - liberar memoria[C]
« Respuesta #2 en: 10 Junio 2016, 23:10 pm »

Hola. -
Tiene toda la razón, lo que ocurre es que el tema que estoy estudiando es matriz de punteros de una dimensión. y para el caso me parece que vale el Ej. que saque del libro, igual me viene de maravilla porque no se si me hubiera dado cuenta por mí mismo de tu alternativa, una muy buena aclaración. -

Saludos.
« Última modificación: 10 Junio 2016, 23:21 pm por NOB2014 » En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: matriz de punteros de una dimensión - liberar memoria[C]
« Respuesta #3 en: 11 Junio 2016, 02:35 am »

Muy bien si es el tema que estas estudiando el ejemplo sirve muy bien  ;D

Si te sirve te dejo un video que tengo del tema, no se si ya lo habias visto.

el ejemplo sirve para ver la asignacion de matrices de apuntadores de forma dinamica.

Y cada apuntador apunta a segmentos memoria de longitudes variadas.

Aun que no recuerdo si maneje la liberacion de la memoria apuntada.



Saludos.
« Última modificación: 11 Junio 2016, 02:40 am por AlbertoBSD » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Matriz de N dimension, como imprimir vertice inferior derecho ?
Java
rub'n 2 3,604 Último mensaje 30 Noviembre 2011, 05:26 am
por rub'n
Punteros creacion de matriz
Programación C/C++
Ja_90 5 2,914 Último mensaje 8 Septiembre 2015, 14:08 pm
por someRandomCode
[Solucionado] Liberar memoria de 2 punteros apuntando a la misma dirección(C) « 1 2 »
Programación C/C++
NOB2014 13 6,462 Último mensaje 4 Mayo 2016, 14:41 pm
por MAFUS
Matriz de punteros, duda al liberar memoria[C]
Programación C/C++
NOB2014 2 2,831 Último mensaje 9 Junio 2016, 03:04 am
por NOB2014
Matriz sin areas cerradas(punteros)
Programación C/C++
Edinier 1 1,686 Último mensaje 29 Abril 2019, 18:05 pm
por K-YreX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines