|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Oct 2002
Messaggi: 3923
|
[C] Casting di array
Ciao a tutti, sto scrivendo un programma in C in cui ho un array di unsigned int. Ad un certo punto ho la necessità di utilizzare gli elementi di tale array in una formula abbastanza lunga e complessa con parecchie divisioni. Sarò ignorante io, ma le divisioni con numeri interi richiedono un casting a double per evitare problemi. La situazione è questa: l'array è definito nel main, mentre la formula si trova in una funzione dedicata. Al momento, passo alla funzione l'array di interi, e poi all'interno della funzione creo un nuovo array di double che popolo, mediante un ciclo for, usando gli elementi dell'array di partenza, ottenendo un casting implicito. In questo modo funziona perfettamente, ma mi chiedevo se non ci fosse un modo più elegante di effettuare il casting, che non richieda un ciclo for e la generazione di un nuovo array. L'idea sarebbe:
Codice:
int main (void) {
unsigned int x[3];
...
funzione( (double *) x);
...
}
Codice:
void funzione(double y[]) {...}
__________________
Intel Core i5 4690K by Cooler Master Hyper 412S | ASRock Z97 Extreme4 | G.Skill Ares 2x4GB DDR3 1600 | MSI nVidia GTX 260 55nm | Samsung SSD 840EVO 250GB | Cooler Master Stacker | Corsair RM650x
Ultima modifica di riva.dani : 08-11-2010 alle 11:51. |
|
|
|
|
|
#2 |
|
Moderatore
Iscritto dal: Nov 2006
Messaggi: 21919
|
non è questione di essere ignoranti, la divisioni tra interi è una divisione senza decimale, simile a quella che si faceva alle elementari
5 diviso 2 = due con resto 1 comunque per evitare la copia dell'array ti basta fare un casting esplicito ovvero quendo devi usare l'elemento del vettore al posto di vettore[indice] metti (double)vettore[indice]
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 |
|
|
|
|
|
#3 | ||
|
Senior Member
Iscritto dal: Oct 2002
Messaggi: 3923
|
Quote:
Quote:
Grazie comunque.
__________________
Intel Core i5 4690K by Cooler Master Hyper 412S | ASRock Z97 Extreme4 | G.Skill Ares 2x4GB DDR3 1600 | MSI nVidia GTX 260 55nm | Samsung SSD 840EVO 250GB | Cooler Master Stacker | Corsair RM650x
|
||
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2782
|
Quote:
|
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Oct 2002
Messaggi: 3923
|
Quote:
__________________
Intel Core i5 4690K by Cooler Master Hyper 412S | ASRock Z97 Extreme4 | G.Skill Ares 2x4GB DDR3 1600 | MSI nVidia GTX 260 55nm | Samsung SSD 840EVO 250GB | Cooler Master Stacker | Corsair RM650x
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:38.




















