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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [C] char * vs char []
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: [C] char * vs char []  (Leído 8,082 veces)
HardForo

Desconectado Desconectado

Mensajes: 219


HardForo.com


Ver Perfil WWW
Re: [C] char * vs char []
« Respuesta #10 en: 17 Abril 2016, 16:31 pm »

Y el puntero como tal donde se guarda ?

Me imagino que si se declara localmente en la pila y sino en heap. Es asi ?


En línea

HardForo:  foro de Hardware y programación

Se buscan Mods y colaboradores *
MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: [C] char * vs char []
« Respuesta #11 en: 17 Abril 2016, 17:04 pm »

Un puntero es una variable más y sigue las mismas reglas que todas las variables.


En línea

HardForo

Desconectado Desconectado

Mensajes: 219


HardForo.com


Ver Perfil WWW
Re: [C] char * vs char []
« Respuesta #12 en: 17 Abril 2016, 17:47 pm »

En StackOverflow tambien dicen eso.... "es una  tipo (de variable) mas"

"Pointers are just a type of variable, so they can be wherever you want them to be (on the heap if you malloc() them, on the stack if they're local variables, or in the data section if they're global)."

Sin embargo, no entiendo bien el tema de malloc() aqui: ¿ que tiene que ver si se reserva memoria para el contenido con donde queda el puntero en memoria ? (mas alla del caso particular de un puntero nulo)
« Última modificación: 17 Abril 2016, 17:53 pm por boctulus » En línea

HardForo:  foro de Hardware y programación

Se buscan Mods y colaboradores *
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: [C] char * vs char []
« Respuesta #13 en: 17 Abril 2016, 18:40 pm »

Sin embargo, no entiendo bien el tema de malloc() aqui: ¿ que tiene que ver si se reserva memoria para el contenido con donde queda el puntero en memoria ? (mas alla del caso particular de un puntero nulo)

De la misma forma que puedes reservar memoria dinámica para, por ejemplo, una estructura o un int, puedes reservar memoria dinámica para un puntero.

Código
  1. int** p = (int**)malloc(sizeof(int*));
  2. *p = (int*)malloc(sizeof(int));
  3. **p = 5;

En este caso habría 2 punteros: uno en el heap (*p), y el otro en la pila (p).
En línea

HardForo

Desconectado Desconectado

Mensajes: 219


HardForo.com


Ver Perfil WWW
Re: [C] char * vs char []
« Respuesta #14 en: 17 Abril 2016, 19:58 pm »

Gracias Ivan, me imaginaba venia por punteros dobles el tema.... estoy probando y no me compila:

Código
  1. int main(void)
  2. {
  3. // En este caso habría 2 punteros: uno en el heap (*p), y el otro en la pila (p)
  4.  
  5. int** p = (int**)malloc(sizeof(int*));  
  6. *p = (int*)malloc(sizeof(int));  // en la pila
  7. **p = 5;
  8. }

12   19   C:\C++\heap_stack_ptrs.c   [Warning] incompatible implicit declaration of built-in function 'malloc'


Gracias desde ya....... lo miro y lo veo bien pero no quiere compilarse
En línea

HardForo:  foro de Hardware y programación

Se buscan Mods y colaboradores *
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: [C] char * vs char []
« Respuesta #15 en: 17 Abril 2016, 20:07 pm »

Pon #include <stdlib.h>, que es donde va malloc.
En línea

HardForo

Desconectado Desconectado

Mensajes: 219


HardForo.com


Ver Perfil WWW
Re: [C] char * vs char []
« Respuesta #16 en: 17 Abril 2016, 20:10 pm »

Mil gracias Ivan
En línea

HardForo:  foro de Hardware y programación

Se buscan Mods y colaboradores *
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines