Taggato: 

Stai visualizzando 4 post - dal 1 a 4 (di 4 totali)
  • Autore
    Post
  • #2612
    gvsoftgvsoft
    Partecipante

    Salve a tutti
    premetto che pur usando da qualche anno Arduino e di conseguenza il “C” ho sempre qualche problema di comprensione (sarà l’età…). Allora il problema (!!) è questo:
    Definisco un array: byte array[8] = {0,0,0,0,0,0,0,0};
    Poi nel contesto dello sketch ogni elemento dell’array può avere valori diversi.
    Una funzione specifica utilizza questo array però non dichiarato nel costrutto ma direttamente all’interno come questo esempio semplicistico:
    byte uscita (byte idx)
    { return (array[idx] ); } ;

    La funzione ritorna il valore puntato da idx nell’array.
    Fin qui nulla da eccepire: però il problema è: come faccio a passare nella funzione l’ INDIRIZZO dell’array in modo che la funzione stessa possa “VEDERE” array diversi ? . Ho provato con vari esempi di puntatori ma non sono venuto a capo del problema. (Sarà la vecchiaia…….)
    Grazie per ogni Vs suggerimento……
    saluti
    gvsoft

    #6987
    Picmicro675Picmicro675
    Moderatore

    Se si dichiara una variabile array

    byte array[] = {0,0,0,0,0,0,0,0};
    int addr = *byte;

    Si nota che la variabile addr deve essere a 16 bit come ovvio sono gli indirizzi. Con l’asterisco si ricava il puntatore della variabile. Quindi ci sono delle manovre che con il post-incremento si può leggere il valore successivo.
    Chiaramente il discorso è molto articolato e ci casco anch’io con alcuni errori.
    La guida di riferimento è qui
    Lo scopo in generale di usare i puntatori sta nel evitare di fare dei passaggi a variabili di transito per le funzioni che vengono interpellate. Dicendo di far uso del puntatore si dice di conseguenza di caricare il valore direttamente nella variabile designata.
    Se invece cerchi di passare ad un array diverso, serve comunque sapere il suo indirizzo. Per questo si fa la dichiarazione con l’asterisco davanti.

    #6990
    Amilcare
    Amministratore del forum

    Credo che ci sia qualche errore il link “QUI” non funziona

    #6992
    Picmicro675Picmicro675
    Moderatore

    Allora sarà qui 😀

Stai visualizzando 4 post - dal 1 a 4 (di 4 totali)
  • Devi essere connesso per rispondere a questo topic.