Varias preguntas:
1. Se puede asignar a un puntero una cadena d esta forma?
char cad[10];
char *p=cad;
2. Porque para asignarle a un puntero a int un valor no hay q reservar memoria dinamica y para un puntero a char si?
ej:
int *p=8; // estaria bien, no?
char *p='a'; // estaria mal, igual q para cadenas, no?
3.
Porque no se puede pasar parametros asi?:
int *a=2,*b=3;
funcion(*a,*b); //llamada con el valor que contenga la dirreccion de //memoria apuntada, en este caso (2,3);
int funcion( a,b){} // sindo a,b variables q contendran 2 y 3.
Porque tampoco se puede hacer esto?:
funcion(&a,&b); // llamada con direcciones de memoria de a y b
int funcion(a,b){} //siendo a y b variables, q contienen las direcciones de //memoria de a y b de la funcion main
Porque si se puede hacer al reves?
funcion(a,b);
int funcion(&a,&b){}
4. Cuando tu defines un puntero dentro de una funcion, no se destruye al retornar ésta al contrario q las variables?? conserva su direccion de memoria y su valor? es esto una ventaja de los punteros? Con que funcion se podian liberar? cuando reservas memoria dinamica con malloc, es recomendarla liberarla siempre con free??
Saludos.