Avatar billede wix Nybegynder
17. marts 2005 - 17:50 Der er 7 kommentarer og
1 løsning

Passing af arrays til funktioner.

Jeg har brug for to eksempel: (Hastighed af kode er meget vigtig) Jeg ved ikke rigtig, om jeg skal bruge den ene metode eller den anden og præcist hvordan jeg bruger pointere.

1. Jeg sender et array og en variable til en funktion, som ikke ændre ved nogen af dem.

2. Samme som 1. men jeg værdierne i arrayet og variablen skal ændres.

int funktion();
void main{

double array[MAX] = {1.2, 1.5}
double variabel = 2.5;
..
..
}

int funktion() {
..
..
}
Avatar billede arne_v Ekspert
17. marts 2005 - 17:53 #1
re 1)

int funktion(double *a, double v)

og

funktion(array, variabel);

re 2)

int funktion(double *a, double *v)

og

funktion(array, &variabel);
Avatar billede arne_v Ekspert
17. marts 2005 - 18:18 #2
Og der vil næppe være nogen mærkbar forskel på de 2 med dagens computere
Avatar billede wix Nybegynder
17. marts 2005 - 22:07 #3
Hvordan refereres der så til det andet element i array'et i begge tilfælde? Funktionen skal kaldes mere end 100000 gange pr. beregning, så hastigheden betyder meget.
Avatar billede arne_v Ekspert
17. marts 2005 - 22:09 #4
array[index]
v

og

array[index]
*v
Avatar billede wix Nybegynder
18. marts 2005 - 10:23 #5
Det forstår jeg ikke. Hvorfor giver understående så problemer? "cannot convert parameter 1 from 'double *' to 'double'". (Linien med dBeta=)

int _stdcall CalcWax(double * totcomp, double * vapcomp, double * liqcomp,
                    double * solcomp, double pressure, double temp,
                    int components, int * cn) {
    double dXl[MAX_COMPONENTS];
    double dYv[MAX_COMPONENTS];
    double dXs[MAX_COMPONENTS];
    double dBeta;
    short phase;
..
..
dBeta = initialize_x(totcomp, components, dXl, dYv, phase);
..
..
}

double initialize_x(double *totcomp, int components, double *dXl, double *dZ, short phase){
..
..
}

dBeta = initialize_x(totcomp, components, dXl, dYv, phase);
Avatar billede wix Nybegynder
18. marts 2005 - 12:01 #6
Uha, jeg har selv fundet fejlen. Det var i erklæringen til funktionen.
Send et svar, så skal du få 60 point.
Avatar billede arne_v Ekspert
18. marts 2005 - 12:02 #7
kommer her
Avatar billede arne_v Ekspert
10. april 2005 - 17:44 #8
så mangler du bare at acceptere
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester