PDA

Visualizza la versione completa : [C] Puntatori passati per riferimento


rsdpzed
01-11-2006, 22:52
Vorrei che una funzione mi restituisse un valore usando lo stesso come paramentro passato per riferimento e non per valore. Il paramentro in questione pero un puntatore e qui sorge l'arcano: perche cosi funziona...


void crea_lista(t_lista **lista)
{
int val = 24; //valore assegnato arbitrariamente
t_lista * l = NULL;

l = (t_lista*)malloc(sizeof(t_lista));
l->valore = val;
l->p_succ = NULL;

*lista = l;
}

...e cosi no?


void crea_lista(t_lista **lista)
{
int val = 24; //valore assegnato arbitrariamente

*lista = (t_lista*)malloc(sizeof(t_lista));
*lista->valore = val;
*lista->p_succ = NULL;
}

oregon
01-11-2006, 23:04
(*lista)->valore = val;
(*lista)->p_succ = NULL;

rsdpzed
01-11-2006, 23:11
grazie oregon.
(....vado a ripassarmi le priorit degli operatori :D )

pgnvni
02-11-2006, 18:21
ormai ho capito come si usano i puntatori anche se ho sempre un dubbio da levarmi!

I puntatori si comportano quasi come gli array???

E che si intende per doppio puntatore??? **

boh a volte davvero strano :dh:

oregon
02-11-2006, 18:58
Originariamente inviato da pgnvni
ormai ho capito come si usano i puntatori anche se ho sempre un dubbio da levarmi!

I puntatori si comportano quasi come gli array???

Beh ... il nome di un array rappresenta il puntatore al suo primo elemento.
Per il resto, non comprendo quali siano le similitudini di comportamento ...



E che si intende per doppio puntatore??? **


Puntatore ad un puntatore



boh a volte davvero strano :dh:

No ... e' una tua impressione ...

P.S. Non ti agganciare ad un'altra discussione, anche se ci sono punti in comune ...
Se hai dei dubbi, crea un thread apposito per le tue domande, nel rispetto del regolamento ...

alka
02-11-2006, 21:53
Originariamente inviato da oregon
P.S. Non ti agganciare ad un'altra discussione, anche se ci sono punti in comune ...
Se hai dei dubbi, crea un thread apposito per le tue domande, nel rispetto del regolamento ...
Intervengo solo per quotare questo suggerimento. :)

Insaponata
03-11-2006, 10:27
Spero di non confonderti ulteriormente le idee, anzi di aiutarti: il titolo che hai messo alla discussione non significa nulla "Puntatori passati per riferimento" ! In C il passaggio dei parametri avviene solo ed esclusivamente per valore.

Riflettici

Insaponata
04-11-2006, 22:24
Questo che hai scritto proprio un passaggio di parametri per valore: il valore che passi l'indirizzo di una variabile

Lak3d
04-11-2006, 22:32
forse intendeva dire che usando i puntatori si pu effettuare una chiamata per riferimento...

Lak3d
06-11-2006, 00:58
Originariamente inviato da Abenzka
Non so se c++ cmq c' un passaggio per riferimento anche in c/c++...

int c,d;

int qwe(int &a, int &b)
{
.....
}

qwe(c,d);

DItemi se sbaglio cos nn vado pi a scuola =)

scusate se uppo il thread, ma rileggendolo ho notato una cosa strana... perch i parametri della funzione hanno l'operatore ampersand? mai vista una cosa simile in C, al massimo stanno nella chiamata... c++ o sballo io? :confused:

Loading