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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  C++ puntero a arreglo bidimensional parar imprimir contenido
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: C++ puntero a arreglo bidimensional parar imprimir contenido  (Leído 3,057 veces)
aurquiel

Desconectado Desconectado

Mensajes: 31



Ver Perfil
C++ puntero a arreglo bidimensional parar imprimir contenido
« en: 12 Noviembre 2016, 03:31 am »

Hola estoy intentado imprimir en pantalla un arreglo 3x3 he investigado pero no me queda claro como declarar el apuntador a un arreglo bidimensional.


Código:
#include <iostream>

void imprimir (float **p);

int main(){

    srand (time(NULL));

    int arreglo[3][3]={1,2,3,
                       4,5,6,
                       7,8,9};

    imprimir(arreglo);

}

void imprimir (float **p){

    int i=0,j=0;

    for (i=0;i<4;i++){
        for(j=0;j<4;j++){
        std::cout<<p[i][j]<<std::endl;

        }
    }

}


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.410


ASMático


Ver Perfil WWW
Re: C++ puntero a arreglo bidimensional parar imprimir contenido
« Respuesta #1 en: 12 Noviembre 2016, 13:20 pm »

El for no es de 0 a 3 (0,1,2,3 -> 4 elementos), sinó de 0 a 2 (0,1,2 -> 3 elementos):
Código
  1. for (i=0;i<3;i++){
  2.    for(j=0;j<3;j++){
  3.        std::cout<<p[i][j]<<std::endl;
  4.    }
  5. }


En línea

aurquiel

Desconectado Desconectado

Mensajes: 31



Ver Perfil
Re: C++ puntero a arreglo bidimensional parar imprimir contenido
« Respuesta #2 en: 12 Noviembre 2016, 15:56 pm »

En los ciclos cada quien los hace a su manera mi condicional es que sea menor que tres asi que esta bien.
 
0,1,2

Lo que me preocupa es el arreglo bidimensional quisiera manejarlo con punteros necesito pasarlo a una función y me gustaría hacerlo por transferencia.
En línea

engel lex
CoAdmin
***
Desconectado Desconectado

Mensajes: 15.347



Ver Perfil
Re: C++ puntero a arreglo bidimensional parar imprimir contenido
« Respuesta #3 en: 12 Noviembre 2016, 16:21 pm »

En los ciclos cada quien los hace a su manera mi condicional es que sea menor que tres asi que esta bien.

what??? no... si tienes menos de X elementos no es como tu quieras... es menos de x elementos... lo tenías mal...



sobre el codigo...

tienes la declaración mal... si son int, son int, si son float, son float... pero no ambas (y no cada quien no lo hace a su manera, es como el compilador lo acepte y siguiendo los standards)

int arreglo[3][3] no es un puntero a un espacio de memoria abierto... es un puntero a secciones fijas de 3 espacios (en la segunda dimensión) el es equivalente a int [][3]

para pasarlo como parámetro tienes 2 opciones...

opcion 1:
cambias la declaración de la función para que acepte punteros a secciones de 3 espacios de memoria continuos...
Código
  1. void imprimir (int p[][3]);

opción 2:
lo haces realmente un puntero
Código
  1. int **arreglo;
  2. arreglo = new *int[3].;
  3. // todo lo que venga
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
aurquiel

Desconectado Desconectado

Mensajes: 31



Ver Perfil
Re: C++ puntero a arreglo bidimensional parar imprimir contenido
« Respuesta #4 en: 18 Noviembre 2016, 20:25 pm »

Gracias si tenias razon ,muchas gracias por responder.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

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