1.
Código:
Por que me imprime 3 y no 9, si estoy pasando como parametro la direcicon de memoria del array??#include<stdio.h> #include<stdlib.h> void funcion(int []); void main(){ char a[10]={1,2,3,4,5}; funcion(a); printf("%d",a[2]); } void funcion(int a[]) { int i; a[2]=9; }
2.
Por que no puedo retornar un puntero desde una funcion?, me explico...
A ver, por ej, si tu retornas de una funcion, " &var", como retornas la direccion de memoria de la variable, al cambiar la pila, cambia el valor de "&var", hasta ahi bien. Pero, según tenia entendido, (ademas lo lei tb en el FAQ d esta pagina) si tu, retornas un puntero desde una funcion, lo q contiene esa direccion de memoria no varia, ya q se guarda en memoria heap, y no en la pila. Pues bien, he hecho un code, para comprobar eso, y sigue cambiando el valor,retornando el puntero, al igual q con "&var"... q pasa??
3.
Por que no se puede poner esto : while (s1[i]!='\0')&& (!log)?? Me da error en el compilador, q pasa? (log es de tipo logico, en este caso, log=cierto)...
Saludos.