<div dir="ltr"><div><div><div><div>Hola,<br><br></div>Esencialmente existe una diferencia entre como se organizan los dople punteros y las matrices de dos dimensiones. Las marices de dos dimensiones se organizan consecutivamente y los dobles punteros estan esparcidos en memoria.<br><br></div>Mira este enlace <a href="http://stackoverflow.com/questions/4470950/why-cant-we-use-double-pointer-to-represent-two-dimensional-arrays" target="_blank">http://stackoverflow.com/questions/4470950/why-cant-we-use-double-pointer-to-represent-two-dimensional-arrays</a> (Ingles)<br><br></div><div>De hecho en la posicion test[1] esta el valor de la siguiente linea, seria un 6 si continuaras con la inicializacion, y en la posicion referencia[1] sera leida como la direccion de la siguiente linea.<br><br></div>Ademads en PC de  64 bits los punteros son de 64 bits y los float son de 32 bits. Agrega la linea printf("Size %d %d \n",sizeof(float*),sizeof(float));<br><br></div><div>Yo usualmente en estos casos uso matrices de una dimension en vez de dos dimensiones, y calculo los indices, o solo uso punteros reservando memoria con malloc o new.<br><br></div><div>Ademas uso como IDE eclipse el cual trae un debuggeador donde puedes vez los valores en memoria, supongo que Code::Blocks tambien debe mostrar memoria<br></div><div><br><br></div><div>Chao!!<br></div><br><br><br></div><div class="gmail_extra"><br><div class="gmail_quote">El 10 de junio de 2015, 20:17, Diego <span dir="ltr"><<a href="mailto:diegogeid@gmail.com" target="_blank">diegogeid@gmail.com</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hola, saludos a todos.<br>
<br>
Aparentemente estoy teniendo un error conceptual. Copio el código<br>
abajo. Alguien podría ayudarme?<br>
<br>
Al intentar acceder a un elemento del aray desde el main no tengo<br>
problemas, pero al intentar acceder desde una función el programa<br>
retorna al sistema operativo un código de error (0xC0000005) y<br>
porsupuesto que no continúa.<br>
<br>
Según los printf, los punteros apuntan a la misma posicion de memoria<br>
tanto en el main como en la función, que estoy haciendo mal?<br>
<br>
PD: estoy compilando en Windows mediante Code::Blocks en Windows<br>
mediante gcc, el error que da, según google, corresponde a una<br>
violación de acceso a memoria.<br>
<br>
Saludos y gracias!<br>
<br>
----------------------------------------------<br>
<br>
#include <stdio.h><br>
#include <stdlib.h> //No es necesario<br>
<br>
void probar(float **referencia)<br>
{<br>
<br>
    printf("La posición de memoria donde empieza el array<br>
multidimensional es %p\n", referencia);<br>
<br>
//No imprime el siguiente printf y vuelve al ssitema con un error 0xC0000005<br>
<br>
    printf("test: %f %f...!\nPuntero: %p\n", referencia[0][0],<br>
referencia[0][1], referencia);<br>
}<br>
<br>
int main()<br>
{<br>
    float test[5][5]={1, 2, 3, 4, 5};<br>
<br>
    printf("La posición de memoria donde empieza el array<br>
multidimensional es %p\n", test);<br>
<br>
    printf("test: %f %f...!\nPuntero: %p\n", test[0][0], test[0][1], test);<br>
<br>
    probar(test);<br>
<br>
    return 0;<br>
}<br>
<br>
_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>
</blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature"><div dir="ltr">Andrés Felipe Valencia P<br>MSc student
<div style="margin:0px;font-family:calibri,arial,helvetica,sans-serif">
ALaRI - Advanced Learning and Research Institute USI - Università della Svizzera Italiana</div>
<div style="margin:0px;font-family:calibri,arial,helvetica,sans-serif">
<span lang="it-CH">Via Giuseppe Buffi 13, Lugano CH-6904, Switzerland</span></div>
<div style="margin:0px 0px 12pt;font-family:calibri,arial,helvetica,sans-serif">
Mobile: + 41 076 822 27 57 <br></div></div></div>
</div>