Gracias por las molestias maunix.
Estoy contigo, si copio el código tal cual en C18 este funciona sin problema y c=6 en func3. La cosa está en que mis funciones realmente no son estas: las que puse simplemente expresan lo que quiero hacer con 3 funciones:
1ª pasa puntero a 2ª.
2ª modifica contenido del puntero
2ª pasa contenido del puntero a 3ª
En mis funciones reales si que me ha funcionado varias veces. El problema está es que cuando añado más código(sin tocar ninguna de las tres funciones mencionadas), deja de funcionar y la función 3 no recibe el valor que debe. Lo se porque intento visualizarlo por un LCD y este se vuelve literalmente loco???
En la realidad las funciones 1 y 2 están declaradas muy cerca dentro del mismo archivo. En cambio las funciones 2 y 3 están a unas 2000 lineas de código(en C) de distancia dentro del mismo archivo. Comento todo esto porque no tengo ni idea de como compila C18 y de si aloja las variables en memoria según se las va encontrando.
Tampoco tengo ni idea de que problemas con el direccionamiento me puedo encontrar. Hasta ahora, no he tenido ningun problema de direccionamiento pasando argumentos por valor. Pero no se que problemas se pueden dar al pasarlos por referencia...
Como podeis ver estoy bastante perdido
.
¿Alguna idea al respecto?
Gracias!