Bueno, despues de un tiempo, he vuelto a estudiar C y me han surgido algunas dudas en estos codigos.
1.
Código:
#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;
}
Por que me imprime 3 y no 9, si estoy pasando como parametro la direcicon de memoria del array??
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.