View Single Post
Old 18-01-2011, 08:29   #11
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da mic85rm Guarda i messaggi
cmq perche' se ho x=0 e y=9 per esempio non mi da quell'errore?
E' da più di 4 anni che non tocco codice C, quindi chiedo venia se dico inesattezze, eventualmente qualcun'altro preciserà le cose.
Da quello che ricordo, usare un numero negativo come indice per deferenziare una locazione di un array, di per se non si può.

Però secondo le regole dell'aritmetica dei puntatori a[i] viene trattato esattamente come *(a+i), dove a è un puntatore.
Questo per il discorso sull'aritmentica dei puntatori.

Nel tuo codice "L" non è un array in senso stretto, ma un puntatore, quindi L[x+1][y], con x che vale 0 e y che vale 9 equivale a *(L+0+1+9).
Con x che vale 1 e y che vale 8 viene fuori *(L+1+1+8), e così via.
Probabilmente prima o poi "sfori" e vai a puntare fuori dalla memoria che hai allocato per l'array bidimensionale...
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)

Ultima modifica di banryu79 : 18-01-2011 alle 12:01. Motivo: Eliminata un'affermazione non corretta.
banryu79 è offline   Rispondi citando il messaggio o parte di esso