Hola tengo una duda con la asignacion dinamica de memoria que es por ejemplo si tengo definido un puntero en el main y ese puntero lo paso como parametro a una funcion y quiero asignarle memoria dinamica dentro de esa funcion, y cuando lo hago el programa compila pero despues salta un error de la memoria o algo asi.Me han dicho que hay que hacer un puntero a punteros pero nose bien como hacerlo. Desde ya muchas gracias.
Si le pasas el puntero a una función para que ésta le asigne un espacio en la memoria sí debes pasar la dirección del puntero como argumento (un puntero a puntero).
O puedes hacer una función que dentro de ella declare un puntero temporal y le asigne la memoria, después devuelves el puntero con el return y lo recoges en el main con una variable puntero.
Ah ya entendi lo probrare, muchas gracias ;-) ;-)
void valor(int* x){
*x =100;
}
El anterior modifica la referencia o lo que apunta por ejemplo si x = 10 en el main ahora es x=100, bien para esto hacias uso de :
valor(&x);
como decía ocupas un puntero para modificar una referencia,
entonces si mandas la de un puntero ocupas modificar al puntero con.... otro puntero!!
esto es:
void valor2(int** modx){
**modx=200;
}
Modificaste a x modificando a su vez la referencia o a lo que apunta el primer puntero