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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Apuntador a arreglo bidimensional en c
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Apuntador a arreglo bidimensional en c  (Leído 5,102 veces)
UltimateDragoon

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Apuntador a arreglo bidimensional en c
« en: 3 Octubre 2011, 20:58 pm »

hola, la verdad apenas comienzo en este mundo de programacion en c, pero estoy algo atorado con este archivo, se que se puede hacer sin apuntadores pero me interesa saber como hacerlo con apuntadores y lo tengo masomenos asi

Código
  1. #include <stdio.h>
  2. #include <cstdlib>
  3. #include <iostream>
  4. int imp(int (*nums)[3][5])
  5. {
  6. int x=0, y=0;
  7. /*system("clear");
  8. for(y=0;y<3;y++)
  9. {
  10. for(x=0;x<5;x++)
  11. {
  12. printf("dato %d del arreglo #%d:\t%d\n", x+1, y+1, *nums[y][x]);
  13. }
  14. }*/
  15. printf("\tSUMA DE ARREGLOS:\n---------------------------------------------\n\tC\t=\tA\t+\tB\n---------------------------------------------\n");
  16. for(x=0;x<5;x++)
  17. {
  18. printf("\t%d\t\t%d\t%d\n", *nums[2][x], *nums[0][x], *nums[1][x]);
  19. }
  20. return 0;
  21. }
  22.  
  23. int main()
  24. {
  25. int arr[3][5], x=0, y=0;
  26. for(y=0;y<2;y++)
  27. {
  28. for(x=0;x<5;x++)
  29. {
  30. printf("Ingresa el dato %d del arreglo #%d\n", x+1, y+1);
  31. scanf("%d", &arr[y][x]);
  32. }
  33. }
  34. for(x=0;x<5;x++)
  35. {
  36. arr[2][x]=arr[0][x] + arr[1][x];
  37. }
  38. //system("clear");
  39. imp(&arr);
  40. //system("PAUSE");
  41. return 0;
  42. }

En teoria solo debe sumar los 5 elementos de cada dimension (en "0" y "1") y guardarlo en el restante (2), todo va bien exepto cuando mando para la impresion en otra funcion, se que se pueden hacer de otras formas evitando el hecho de enviar la direccion del arreglo bidimencional pero como mecione antes me interesa hacerlo asi para aprender, cualquier ayuda siempre sera bienvenida y gracias de antemano


En línea

LearningSpanishProgrammer

Desconectado Desconectado

Mensajes: 67


Ver Perfil
Re: Apuntador a arreglo bidimensional en c
« Respuesta #1 en: 3 Octubre 2011, 22:43 pm »

Código:
int implementation(int num[][5])
o
int implementation(int num[5][5])

Pero, se quieres usar su sintaxis, entonces:

Código:
printf("\t%d\t\t%d\t%d\n", (*nums)[2][x], (*nums)[0][x], (*nums)[1][x]);

Por que tu estas accediendo el entero como un puntero

Código:
*nums[2][x] generates *(nums[2][x]) 

Vea esta: http://foro.elhacker.net/programacion_cc/ayuda_con_tablas_bidimensionales-t339047.0.html;msg1663422#msg1663422
y esta: http://foro.elhacker.net/programacion_cc/duda_con_arreglo_bidimensional_dinamico_en_ide_devc-t337905.0.html;msg1658904#msg1658904


« Última modificación: 3 Octubre 2011, 22:53 pm por LearningSpanishProgrammer » En línea

Estoy aprendiendo español, y tu estas aprendiendo programación
UltimateDragoon

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Apuntador a arreglo bidimensional en c
« Respuesta #2 en: 3 Octubre 2011, 23:05 pm »

muchas gracias, eso resolvio el problema
« Última modificación: 4 Octubre 2011, 03:30 am por UltimateDragoon » 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