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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Pequeña duda sobre punteros
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Pequeña duda sobre punteros  (Leído 3,071 veces)
kondrag_X1

Desconectado Desconectado

Mensajes: 157


Ver Perfil
Re: Pequeña duda sobre punteros
« Respuesta #10 en: 25 Diciembre 2015, 16:40 pm »

Una pregunta

Para evitar esos problemas se usa malloc reservando y posteriormente liberando la memoria, verdad?


En línea

Zekkk

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Pequeña duda sobre punteros
« Respuesta #11 en: 26 Diciembre 2015, 00:56 am »

Correcto, esta en la sección de datos de solo lectura y el puntero en si en el stack. Y no kondrag, no se reserva memoria usando malloc a menos que realmente lo necesites porque reservar memoria en el "heap" es mucho mas lento que en el stack. Considera que para reservar memoria con malloc() tienes que buscar un bloque de memoria lo suficientemente grande y dividirlo y para empeorar las cosas luego debes liberarlo usando free(). Por otra parte para resevar memoria en el stack solo tienes que cambiar un puntero.

Es decir, solo usa malloc cuando sea absolutamente necesario.


En línea

kondrag_X1

Desconectado Desconectado

Mensajes: 157


Ver Perfil
Re: Pequeña duda sobre punteros
« Respuesta #12 en: 26 Diciembre 2015, 01:54 am »

y cuando es necesario? siempre he tenido esa duda
En línea

Zekkk

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Pequeña duda sobre punteros
« Respuesta #13 en: 26 Diciembre 2015, 02:08 am »

Cuando necesitas acceso a una gran cantidad de memoria. Por ejemplo si quisieras un array bastante grande, o cuando necesitas mantener una variable por mucho tiempo como por ejemplo para una lista enlazada o algo asi.
En línea

0xFer


Desconectado Desconectado

Mensajes: 401



Ver Perfil
Re: Pequeña duda sobre punteros
« Respuesta #14 en: 26 Diciembre 2015, 02:12 am »

y cuando es necesario? siempre he tenido esa duda

Si antes de la compilación no sabes cuánta memoria vas a utilizar para alojar tus variables entonces para no tener que reservar una enorme cantidad de memoria en tiempo de compilación y que al final no vas a terminar de usar entonces reservas memoria en tiempo de ejecución cuando ya conozcas cuánta memoria vas a necesitar.

Imagina que reservas memoria en tiempo de compilación para 200 variables pero al final terminas usando sólo 40 entonces habrás desperdiciado 160, si es posible entonces reservas memoria sólo para esas 40 variables con memoria dinámica. Aunque personalmente sólo uso memoria dinámica cuando sé que la cantidad de memoria que se perderá es grande en caso de no usarla.
« Última modificación: 26 Diciembre 2015, 02:17 am por 0xFer » En línea

Código
  1. int getRandomNumber(){
  2.    return 4; //chosen by fair dice roll
  3.              //guaranteed to be random
  4. }
kondrag_X1

Desconectado Desconectado

Mensajes: 157


Ver Perfil
Re: Pequeña duda sobre punteros
« Respuesta #15 en: 26 Diciembre 2015, 12:44 pm »

ok, gracias a todos yo reservaba memoria siempre que recibía un paquete cuando programa servidores y clientes en C.
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
duda sobre punteros
Ejercicios
maryrisas 1 3,012 Último mensaje 23 Febrero 2006, 17:59 pm
por [[JONAS]]
Pequeña duda sobre WMI
Programación Visual Basic
ŞCØRPIØN-X3 2 1,580 Último mensaje 13 Mayo 2011, 04:58 am
por ŞCØRPIØN-X3
Duda sobre punteros
Programación C/C++
adissenys 3 1,453 Último mensaje 17 Noviembre 2012, 22:59 pm
por Ferno
Pequeña duda con punteros
Programación C/C++
JonaLamper 1 898 Último mensaje 28 Febrero 2015, 13:09 pm
por xiruko
Duda sobre punteros en C
Programación C/C++
mester 4 2,119 Último mensaje 29 Julio 2015, 22:46 pm
por mester
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines