Autor
|
Tema: Liberar memoria asignada con malloc, después de salir de la función [C]. (Leído 3,094 veces)
|
NOB2014
Desconectado
Mensajes: 366
|
Hola, gente. Nuevamente con cositas que no puedo resolver consultando al amigo Google, de la manera como está planteado el programa ¿es imposible liberar la memoria asignada al puntero arr?, el manual aconseja que nunca se reserve memoria de esta manera, pero aunque sea para tener un conocimiento más, es realmente cierta mi pregunta. - #include <stdio.h> #include <stdlib.h> int *asignar_Array(int size, int valor); int main( void ){ size_t i; int *vector = asignar_Array(5,45); for( i=0; i<5; i++ ){ } return (EXIT_SUCCESS); } int *asignar_Array(int size, int valor) { size_t i; int *arr = (int*)malloc( size * sizeof(int )); for( i=0; i<size; i++ ) { arr[i] = valor; } return arr; }
Saludos.
|
|
|
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.-
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
En verdad no sé que manual estás siguiendo pero tíralo. El programa está bien y, por ejemplo, así funciona la función de libreria fopen. FILE *f = fopen(ruta , modo );
Date cuenta que tu función retorna la dirección de inicio del bloque que has adquirido de memoria. Lo único que tienes que hacer es no perderlo en ningún momento para pasárselo a free.
|
|
« Última modificación: 27 Abril 2016, 21:41 pm por MAFUS »
|
En línea
|
|
|
|
NOB2014
Desconectado
Mensajes: 366
|
Hola, MAFUS. - Por favor y antes de que tenga que hacer meditación para tranquilizarme, ¿que tiene que ver mi programas con los archivos? FILE *f = fopen(ruta , modo );
En verdad no sé que manual estás siguiendo pero tíralo. jajajajajajajajaja..... No obstante, ya descubrí por donde viene la mano:
|
|
|
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.-
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
Es un ejemplo para que veas que hasta en la librería estándar usan el mismo código que tu, y que tanto odia tu manual. En serio, tíralo.
|
|
|
En línea
|
|
|
|
HardForo
Desconectado
Mensajes: 219
HardForo.com
|
Es un ejemplo para que veas que hasta en la librería estándar usan el mismo código que tu, y que tanto odia tu manual. En serio, tíralo.
|
|
|
En línea
|
HardForo: foro de Hardware y programación Se buscan Mods y colaboradores *
|
|
|
NOB2014
Desconectado
Mensajes: 366
|
MAFUS, no seas tan duro con mi manual, es interesantisimo.- Saludos.
|
|
|
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.-
|
|
|
geeke
Desconectado
Mensajes: 93
|
Es un excelente libro el que estas leyendo; pero hubo un malentendido de tu parte; en el libro no lo recomiendan por podría conducir a una fuga de memoria, en el caso de que la memoria asignada no se haya liberado como claramente se menciona en la ultima parte es nuestra responsabilidad liberarla int* vector = allocateArray(5,45); free(vector);
Te invito a que vuelvas a leer mas detenidamente esta parte
|
|
|
En línea
|
|
|
|
NOB2014
Desconectado
Mensajes: 366
|
Hola, Geeke. Muchas gracias por el aporte, te voy a hacer una confesión, no tengo la más pálida idea del inglés y lo estoy traduciendo utilizando 4 traductores en línea (la tradución que me parece más acertada la paso a un borrador para estudiarlo luego) y como te imaginaras por momento entre la traducción que no es exacta y las ganas de disipar mis dudas ocurren estas cosas. - Lo de no saber nada del idioma es por mis 64 años, en mis tiempos de estudio casi no se le daba importancia al inglés, pero como todos en los foros (cuando se da la oportunidad) me dicen que los mejores contenidos están en ese idioma, bueno estoy asiendo el esfuerzo.
Te envio un abrazo.
|
|
« Última modificación: 28 Abril 2016, 04:55 am 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.-
|
|
|
HardForo
Desconectado
Mensajes: 219
HardForo.com
|
Mi consejo........ estudia el vocabulario.......veras que se repite ......si lo conoces, luego la gramatica inglesa es bastante cercana a la nuestra, al menos se estructura en igual en terminos generales (sujeto-verbo-objeto)
|
|
|
En línea
|
HardForo: foro de Hardware y programación Se buscan Mods y colaboradores *
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Sumar el numero de “a” que contiene la cadena asignada a una función [python]
Programación General
|
bichotg
|
5
|
3,705
|
22 Febrero 2012, 04:33 am
por Novlucker
|
|
|
malloc dentro de una funcion
Programación C/C++
|
erest0r
|
2
|
2,083
|
18 Diciembre 2013, 19:05 pm
por erest0r
|
|
|
Liberar memoria asignada a una estructura
Programación C/C++
|
David8
|
1
|
2,124
|
24 Mayo 2014, 23:50 pm
por rir3760
|
|
|
(Pregunta) Que pasa con la memoria asignada al cerrar el programa
Programación C/C++
|
Seyro97
|
7
|
2,444
|
26 Mayo 2015, 17:23 pm
por Peregring-lk
|
|
|
[C] Memoria dinámica. Malloc, Realloc
Programación C/C++
|
GGZ
|
1
|
2,688
|
19 Noviembre 2015, 01:44 am
por GGZ
|
|