Newsgroup: it.comp.lang.c++
Titolo: L-Value

Che cosa significa se il compilatore mi da questo errore? Vi posto la
funzione in cui mi da questo errore:
void SaveRecord(int new_position, char new_player[], int new_score)
{
  char name[10][20];
  int position[10];
  int score[10];
  int i, record_to_be_substituted;
  ifstream file(FILE_NAME, ios::binary);
  for (i = 0; (!file.eof()); i++);
  {
    file >> position[i];
    file >> name[i];
    file >> score[i];
  }
  file.close();
  // Cambio funzione
  if (i < 10)
  {
    WriteReachedScore(new_position, new_player, new_score);
    return;
  }
  for (int a = 0; a <= i; a++)
  {
    if (position[a] == i) record_to_be_substituted = a;
  }
  position[record_to_be_substituted] = new_position;
  name[record_to_be_substituted] = new_player;
  score[record_to_be_substituted] =  new_score;
  // Scale le posizioni
  for (int a = 0; (!file.eof()); a++)
  {
    if (position[a] <= new_position && a != record_to_be_substituted && a <=
9)
    {
      position[a]++;
      name[a] = name[a + 1];
      score[a] = score[a + 1];
    }
  }
  // Scrivo sul file
  ofstream out(FILE_NAME, ios::binary);
  for (int a = 0; a <= i; a++)
  {
    out << position[a] << " "
        << name[a] << " "
        << score[a] << "\n";
  }
  out.close();
}
e l'errore lo segna su:
name[a] = name[a + 1];
name[record_to_be_substituted] = new_player;
Grazie
Ramses

 name[record_to_be_substituted] = new_player;
qui stai cercando di assegnare un array ad un altro array e questo, come
detto in un altro thread, non e' consentito.
Ciao,
Nicola

 Nicola
Ciao
Ramses

 name[record_to_be_substituted] = new_player;
name[a] e' un array di 20 caratteri e come tutti gli array e' un l-value non
modificabile (quindi non puo' stare a sinistra dell'uguale).
Idem, ovviamente, per name[record_to_be_substituted]
Se anche gli array fossero l-value modificabili, new_player e' un puntatore a
carattere e non un array.
C'e' un altro thread di pochissimi giorni fa sul discorso degli array e del
fatto che non sono modificabili.
P.S.: Antonio, che ne dici di un articolo sul problema degli array e dei
puntatori. Magari da inserire anche nelle FAQ. Vabbe' che non le legge nessuno.
Anzi, io stesso non le leggo da millenni e non me le ricordo (magari c'e'!).
Quasi quasi vado a ripassarmele!
--
Andrea Ferro
---------
Brainbench C++ Master. Scored higher than 97% of previous takers
Scores: Overall 4.46, Conceptual 5.0, Problem-Solving 5.0
More info 
http://www.brainbench.com/transcript.jsp?pid=2522556

 cui se ne h parlato?
Puoi fare un ciclo for per assegnare i singoli elementi o usare una funzione
predefinita (std::copy per esempio) e in alcuni casi (compreso il tuo) anche
memcpy.
Pensavo fossi un frequentatore 'assiduo'. Il tuo nome l'ho gią visto. Il thread
in questione aveva come subject "Funzione che restituisce Array...". Il primo
messaggio e' del 4 e l'ultimo del 6 (ieri). Contiene 25 messaggi (la maggior
parte poco interessanti).


Tutto risolto.
Grazie ad entrambi.
Ramses

 parte poco interessanti).
Lo sono infatti, solo che ho perso una cazz..o di settimana perchč il
picchio di rivenditore di ram era in vacanza e non potevo farmi cambiare la
mia che era partita :-((. Ho dovuto aspettare quasi 2 settimane, sono
proprio incazzato, tutto l'anno h aper saltare, e proprio quando sono in
vacanza :-(((((. E' successo tanto di quel casino che non ne avete un'idea.
Cmq scusate, oggi sono tornato :-))
Ciao
Ramses

 (magari c'e'!). Quasi quasi vado a ripassarmele!
ci stavo giusto pensando, solo che personalmente non ho abbastanza tempo 
per dedicarmi or ora a questo argomento. Ne approfitto per lanciare una 
proposta: se qualcuno di voi se la sente e ha tempo/voglia di scrivere 
qualcosa per Programmazione.it (la questione array-puntatori direi che e' 
un ottimo esempio) mi scriva in privato.
ciao Anto
-- 
Antonio Cuni, 19 anni, studente
Brainbench C++ Master: 4.6, higher than 98% of all previous test takers.
C Language: 3.32, higher than 79% of all previous test takers.
Guida C/C++ di Programmazione.it: 
http://cpp.programmazione.it