Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [C]domanda puntatori

    Ragazzi ho un problema con i puntatori in pratica volevo creare una function che se il mio puntatore punta a primo deve puntare a secondo e viceversa cioe non so se riesco a spiegarmi per me è una cosa complicata sono agli inizi.
    è una cosa fattibile o non si puo fare?

  2. #2

    Re: [C]domanda puntatori

    Originariamente inviato da ironista
    Ragazzi ho un problema con i puntatori in pratica volevo creare una function che se il mio puntatore punta a primo deve puntare a secondo e viceversa cioe non so se riesco a spiegarmi per me è una cosa complicata sono agli inizi.
    è una cosa fattibile o non si puo fare?
    No, non riesci a spiegarti. Cosa sono primo e secondo? Qual è il contesto?
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: [C]domanda puntatori

    Originariamente inviato da ironista
    è una cosa fattibile o non si puo fare?
    Puoi spiegarti meglio?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  4. #4
    lo so sono stato pessimo nella spiegazione

    in pratica io ho due variabili int che sono primo e secondo e ho il puntatore c anch'esso int.
    il puntatore ad esempio punta a primo ed arrivato ad un certo punto deve cambiare la variabile a cui punta cioe deve puntare a secondo. ma magari al prossimo passaggio(siamo in un ciclo while) il puntatore magari deve ancora cambiare variabile puntata e quindi da secondo deve passare a primo

    in pratica io ho il puntatore int *puntiplayeringioco e le variabili puntiplayeruno e puntiplayerdue

    a seconda del giocatore a cui tocca il mio puntatore deve puntare alla variabile punti del proprio giocatore quindi nel programma ad un certo punto se è il turno del primo giocatore il puntatore punterà alla variabile puntiplayeruno poi il primo giocatore sbaglia finisce il suo turno e tocca al secondo giocatore e quindi il puntatore dovrebbe puntare a puntiplayerdue

    ecco io vorrei creare una function che se il puntatore punta a puntiplayeruno deve puntare a puntiplayerdue e viceversa

    spero di essere stato chiaro

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    131
    controlli che indirizzo contiene il puntatore e poi lo cambi

    codice:
    if (puntiplayeringioco == &puntiplayeruno)
    	puntiplayeringioco = &puntiplayerdue;
    
    else
    	puntiplayeringioco = &puntiplayeruno;

  6. #6
    e nonostante io sia scarsissimo col c ci ero arrivato ma probabilmente commetto qualche altro errore


    #include <stdio.h>
    #include <stdlib.h>
    void scambiare(int, int, int)
    int main()
    {
    int a=1,b=2,*c;
    c=&a;
    printf("%d",*c);

    scambiare(a,b,c);
    printf("%d%",*c);
    system("PAUSE");
    return 0;

    }




    void scambiare(int a,int b,int c)
    {
    if(c==&a)
    c=&b;

    else

    c=&a;


    }[CODE]

    ho provato a scrivere ora questo codice ma il compilatore mi da errore forse nella chiamata della function non so.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    131
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    void scambiare(int, int, int); // qua ti eri dimenticato il punto e virgola
    int main()
    {
    int a=1,b=2,*c;
    c=&a;
    printf("%d",*c);
    
    scambiare(a,b,c);
    printf("%d%",*c);
    system("PAUSE");	
    return 0;
    
    }
    
    
    
    // se passi questi parametri alla funzione, stai copiando i valori originari in altre variabili
    // quindi cambia l'indirizzo
    void scambiare(int a,int b,int c)
    {
    if(c==&a)
    c=&b;
    
    else
    
    c=&a;
    
    
    }
    ti consiglio di andare a vedere bene le differenze tra passaggio per valore o per riferimento

    Comunque il codice corretto della funzione sarebbe
    codice:
    // qua devi passare i parametri per riferimento
    void scambiare(int &a,int &b,int *&c)
    {
    if(c==&a)
    c=&b;
    
    else
    
    c=&a;
    
    
    }
    Ciao

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 © 2025 vBulletin Solutions, Inc. All rights reserved.