Asignar memoria dinamicamente en C

Iniciado por fullanitox, 10 Marzo 2016, 13:00 PM

0 Miembros y 1 Visitante están viendo este tema.

fullanitox

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.

MAFUS

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.

fullanitox

Ah ya entendi lo probrare, muchas gracias  ;-) ;-)

furciorifa

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