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)
| | |-+  Asunto con punteros y arreglos en c
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Asunto con punteros y arreglos en c  (Leído 2,102 veces)
Jay

Desconectado Desconectado

Mensajes: 26


Ver Perfil
Asunto con punteros y arreglos en c
« en: 3 Mayo 2019, 22:18 pm »

Hola tengo un arreglo bidimensional inicializado aqui, me gustaria saber como crear un apuntador que me apunte a un dato de este arreglo.
char claveHabitacion [10][10] = {"ST1", "ST2", "ST3", "ST4", "ST5", "ST6", "ST7", "ST8", "ST9", "ST10"};

char *pm;

pm=&claveHabitacion[9]; //por ejemplo aqui le digo que me asigne ala direccion de la posicion 9 de mi arreglo pero me marca un warning y no se imprime

pm=&claveHabitacion; // al igual al hacer esto me sige marcando warning y no se imprime se supone que deberia imprimirse el arreglo pero

porfavor ayuda por ejemplo yo solo quiero apuntar a ST1 y eso es lo que necesito imprimir ST1 es un elemento del arreglo


En línea

Loretz

Desconectado Desconectado

Mensajes: 117


Ver Perfil
Re: Asunto con punteros y arreglos en c
« Respuesta #1 en: 4 Mayo 2019, 00:59 am »

Va en el ejemplo:

Código
  1. #include <iostream>
  2.  
  3. int main()
  4. {
  5.    char claveHabitacion[10][10] = { "ST1", "ST2", "ST3", "ST4", "ST5", "ST6", "ST7", "ST8", "ST9", "ST10" };
  6.  
  7.    char* pm;
  8.  
  9.    // pm = &claveHabitacion[9];
  10.    /* el problema aquí es que &claveHabitacion[9] es de tipo char(*)[10]
  11.        y no puede asignarse a un char*
  12.  
  13.        Pero puedes hacer:
  14.     */
  15.  
  16.    pm = reinterpret_cast<char*>(&claveHabitacion[9]);
  17.  
  18.    std::cout << pm;
  19. }

Pero ten presente que usar reinterpret_cast se entiende como cuando un yogur está de oferta dos horas antes del vencimiento, no sé si me explico.


« Última modificación: 4 Mayo 2019, 01:04 am por Loretz » En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Asunto con punteros y arreglos en c
« Respuesta #2 en: 4 Mayo 2019, 03:19 am »

Otra opción sería esta:
Código
  1. char *pm = claveHabitacion[9];
En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
Jay

Desconectado Desconectado

Mensajes: 26


Ver Perfil
Re: Asunto con punteros y arreglos en c
« Respuesta #3 en: 5 Mayo 2019, 21:17 pm »

Vale eso lo entiendo pero como imprimiria solamente esa posicion la 9
En línea

RayR

Desconectado Desconectado

Mensajes: 243


Ver Perfil
Re: Asunto con punteros y arreglos en c
« Respuesta #4 en: 5 Mayo 2019, 22:49 pm »

Vale eso lo entiendo pero como imprimiria solamente esa posicion la 9
Pues exactamente como te dijo YreX-DwX. Tu problema era que estabas usando el operador de dirección & cuando no debías, complicando un problema que en realidad es muy simple. Cada uno de los 10 elementos del arreglo claveHabitacion es a su vez un arreglo char. Tan solo con que escribas
Código:
 claveHabitacion[0]
// O claveHabitacion[1], etc
ya te estás refiriendo a una cadena, y no necesitas hacer nada más. Así, para imprimir la cadena en la posición 9, simplemente pide a printf que imprima
 
Código:
claveHabitacion[9]
de nuevo, SIN &. O bien, haz como te dijo YreX-DwX, y manda a imprimir pm, y ya.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda Punteros Dobles/Array de punteros
Programación C/C++
MisterJava 2 5,167 Último mensaje 30 Diciembre 2012, 20:19 pm
por MisterJava
Arreglos,punteros y sprintf.-
Programación C/C++
DanielPy 4 2,839 Último mensaje 13 Diciembre 2013, 17:50 pm
por DanielPy
Punteros dobles / Punteros a puntero.
Programación C/C++
NOB2014 5 8,416 Último mensaje 13 Abril 2016, 16:00 pm
por MAFUS
[C] (Consulta) Mezclando punteros y arreglos.
Programación C/C++
class_OpenGL 5 4,603 Último mensaje 16 Mayo 2016, 18:51 pm
por class_OpenGL
Duda con correspondencia entre arreglos y punteros en C++
Programación C/C++
retr02332 3 3,318 Último mensaje 2 Junio 2020, 19:37 pm
por RayR
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines