Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Necsus
    Registrato dal
    Oct 2006
    Messaggi
    87

    Puntatori

    Salve, mi chiedevo come mai non mi permette di eseguire l'istruzione all'interno della funzione calcolaPotenza, cosa c'è di errato?

    potenza.c: In function ‘void calcolaPotenza(int*)’:
    potenza.c:14: error: invalid operands of types ‘int**’ and ‘int**’ to binary ‘operator*’
    #include <stdio.h>
    void calcolaPotenza(int*);
    void stampa(int*);
    int main()
    {
    int valore,potenza;
    scanf("%d",&valore);
    calcolaPotenza(&valore);
    stampa(&valore);
    }

    void calcolaPotenza(int* v)
    {
    &v=&v*&v;
    }

    void stampa(int* v)
    {
    printf("%d",&v);
    }

  2. #2
    codice:
    void calcolaPotenza(int *v)
    {
    	*v=*v**v;
    }
    
    void stampa(int *v)
    {
    	printf("%d", *v);
    }
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  3. #3
    Utente di HTML.it L'avatar di Necsus
    Registrato dal
    Oct 2006
    Messaggi
    87
    Grazie mille io sapevo che con &v prendeva il contenuto di "variabile" per quasto ho fatto &v=&v*&v

  4. #4
    Con & prendi l'indirizzo di una variabile, con * dereferenzi il puntatore. Scrivendo &v ottieni un puntatore ad un puntatore, mentre a te invece serve ottenere il valore della variabile a cui il puntatore punta, per cui devi usare *.
    P.S.: manca il linguaggio nel titolo.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,303

    Moderazione

    Il linguaggio va specificato anche nel titolo.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.