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

    Trasferire il contenuto parziale di una matrice tramite funzione

    Lavorando con le matrici, mi sono trovato in questa situazione:

    unsigned char VAR[200]
    VAR = funz(id);

    in un altro file:

    unsigned char MATR[255][200]

    unsigned char *funz(int id) {
    return (MATR[id]);
    }

    In altre parole vorrei trasferire tramite questa funzione, tutti i 200 valori contenuti in MATR[id], in VAR.

    Ed ecco che il simpatico VS2005 risponde:
    error C2440: '=' : cannot convert from 'unsigned char *' to 'unsigned char [200]'
    1> There are no conversions to array types, although there are conversions to references or pointers to arrays :master:

    E ora?...

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    codice:
    unsigned char *funz(int id)
    prova trasformando in

    codice:
    unsigned char[] funz(int id)
    una matrice non è la stessa cosa di un puntatore.. almeno teoricamente e per il compilatore...

  3. #3
    :master: Ora gli errori sono 20...

  4. #4
    Una matrice, come argomento o come tipo di ritorno, di fatto è un puntatore.
    Se vuoi copiare i valori di una matrice in un'altra devi necessariamente usare funzioni come la memcpy.
    Amaro C++, il gusto pieno dell'undefined behavior.

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

    Moderazione

    Il linguaggio va indicato anche nel titolo, come da Regolamento.

    Qui l'ho aggiunto io.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

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.