<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">Diego, probá con esta implementación
del método probar():<br>
<br>
<font face="Courier New">void probar(float *referencia)<br>
{<br>
<br>
printf("La posición de memoria donde empieza el array
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], (&referencia)[0][1] , referencia);<br>
}<br>
</font><br>
Parece ser que C no trata exactamente de la misma forma a los
arrays que los punteros, de ahí la des-referencia con
(&referencia)[n][n]...<br>
<br>
Espero te sirva. Saludos!<br>
<br>
Ing. Horacio Peñafiel<br>
<br>
<br>
El 10/06/2015 a las 03:17 p.m., Diego escribió:<br>
</div>
<blockquote
cite="mid:CAO4PJzidDyd4m-xxkk2mh3kjmjN4J29KVif5wWQghi9d1626Gw@mail.gmail.com"
type="cite">
<pre wrap="">Hola, saludos a todos.
Aparentemente estoy teniendo un error conceptual. Copio el código
abajo. Alguien podría ayudarme?
Al intentar acceder a un elemento del aray desde el main no tengo
problemas, pero al intentar acceder desde una función el programa
retorna al sistema operativo un código de error (0xC0000005) y
porsupuesto que no continúa.
Según los printf, los punteros apuntan a la misma posicion de memoria
tanto en el main como en la función, que estoy haciendo mal?
PD: estoy compilando en Windows mediante Code::Blocks en Windows
mediante gcc, el error que da, según google, corresponde a una
violación de acceso a memoria.
Saludos y gracias!
----------------------------------------------
#include <stdio.h>
#include <stdlib.h> //No es necesario
void probar(float **referencia)
{
printf("La posición de memoria donde empieza el array
multidimensional es %p\n", referencia);
//No imprime el siguiente printf y vuelve al ssitema con un error 0xC0000005
printf("test: %f %f...!\nPuntero: %p\n", referencia[0][0],
referencia[0][1], referencia);
}
int main()
{
float test[5][5]={1, 2, 3, 4, 5};
printf("La posición de memoria donde empieza el array
multidimensional es %p\n", test);
printf("test: %f %f...!\nPuntero: %p\n", test[0][0], test[0][1], test);
probar(test);
return 0;
}
_______________________________________________
Lista de correo Cconclase <a class="moz-txt-link-abbreviated" href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a>
<a class="moz-txt-link-freetext" href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a>
Bajas: <a class="moz-txt-link-freetext" href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a>
</pre>
</blockquote>
<font face="Arial" size="1"><span
style="font-size:9.0pt;font-family:Arial" lang="ES-AR"></span></font><font
size="1"><span style="font-size:9.0pt"><o:p></o:p></span></font>
<div class="moz-signature">
<div>
<u1:p></u1:p>
</div>
</div>
</body>
</html>