Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764

    [C] puntatori passati per riferimento

    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...
    codice:
    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?
    codice:
    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;
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    codice:
        (*lista)->valore = val;
        (*lista)->p_succ = NULL;

  3. #3
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    grazie oregon.
    (....vado a ripassarmi le priorità degli operatori )

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    83
    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
    #include <pgnvni.h>

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    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
    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 ...

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Moderazione

    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.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    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

  8. #8
    Questo che hai scritto è proprio un passaggio di parametri per valore: il valore che passi è l'indirizzo di una variabile

  9. #9
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,035
    forse intendeva dire che usando i puntatori si può effettuare una chiamata per riferimento...

  10. #10
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,035
    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?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.