Tema: dudas code
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/01/2007, 19:51
N0vat0
 
Fecha de Ingreso: julio-2006
Mensajes: 99
Antigüedad: 17 años, 10 meses
Puntos: 0
dudas code

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.