/
Forside
/
Teknologi
/
Udvikling
/
C/C++
/
Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn
*
Kodeord
*
Husk mig
Brugerservice
Kom godt i gang
Bliv medlem
Seneste indlæg
Find en bruger
Stil et spørgsmål
Skriv et tip
Fortæl en ven
Pointsystemet
Kontakt Kandu.dk
Emnevisning
Kategorier
Alfabetisk
Karriere
Interesser
Teknologi
Reklame
Top 10 brugere
C/C++
#
Navn
Point
1
BertelBra..
2425
2
pmbruun
695
3
Master_of..
501
4
jdjespers..
500
5
kyllekylle
500
6
Bech_bb
500
7
scootergr..
300
8
gibson
300
9
molokyle
287
10
strarup
270
Array referance i metode
Fra :
Dennis Taszarek Holm
Dato :
12-11-03 12:57
Hey igen
Hvordan er det muligt at overføre et array pr. referance til en funktion...
Min funktion ser ud som følgende:
void readSunSetFile(int &riseSet[3][365])
{
//kode
}
men når jeg prøver at overføre et array får jeg at vide at jeg ikke må
overføre referancer til arrays.
Ivan Johansen (
12-11-2003
)
Kommentar
Fra :
Ivan Johansen
Dato :
12-11-03 19:48
Dennis Taszarek Holm wrote:
> void readSunSetFile(int &riseSet[3][365])
> {
> //kode
> }
>
> men når jeg prøver at overføre et array får jeg at vide at jeg ikke må
> overføre referancer til arrays.
Som du har fundet ud af tager din funktion et array af referencer. En
reference til et array har en noget sjovere syntaks:
void readSunSetFile(int (&riseSet)[3][365])
{
}
Jeg kan dog ikke se nogen grund til at overføre et array som reference.
Den eneste forskel jeg kan se i forhold til at overføre som pointer,
hvilket ellers vil ske, er et strengere typetjek.
Ivan Johansen
Byrial Jensen (
12-11-2003
)
Kommentar
Fra :
Byrial Jensen
Dato :
12-11-03 20:16
Dennis Taszarek Holm wrote:
> Hey igen
>
> Hvordan er det muligt at overføre et array pr. referance til en funktion...
Det kan man ikke, og det er ikke nødvendigt da et array overføres til en
funktion som en pointer.
I nedenstående program overføres der en pointer til et array af 7 int
til funktionerne. Man kunne godt have anført en størrelse for den første
dimension i funktionserklæringerne, men den bruges alligevel ikke -
hverken til kodegenerering eller typetjek, så jeg vil ikke anbefale det.
#include <iostream>
void set_values (int ar[][7])
{
for (int i = 0 ; i < 3 ; ++i)
for (int j = 0 ; j < 7 ; ++j)
ar[i][j] = (i+1)*1000 + (j+1);
}
void print_values (int ar[][7])
{
for (int i = 0 ; i < 3 ; ++i)
{
for (int j = 0 ; j < 7 ; ++j)
std::cout << ar[i][j] << ' ';
std::cout << std::endl;
}
}
int main ()
{
int ar[3][7];
set_values (ar);
print_values (ar);
}
Mogens Hansen (
12-11-2003
)
Kommentar
Fra :
Mogens Hansen
Dato :
12-11-03 20:41
"Dennis Taszarek Holm" <dennis@contempt.dk> wrote in message
news:bot76e$6i2$1@sunsite.dk...
> Hvordan er det muligt at overføre et array pr. referance til en
funktion...
Et bud kunne være at bruge en typedef:
<C++ kode>
typedef int array_type[3][365];
void foo(array_type& bar)
{
for(unsigned i = 0; sizeof(bar)/sizeof(bar[0]) != i; ++i)
for(unsigned j = 0; sizeof(bar[0])/sizeof(bar[0][0]) != j; ++j)
bar[i][j] = i*j;
}
int main()
{
array_type at;
foo(at);
}
<C++ kode/>
Et andet alternativ er at lave det som en datastruktur.
Venlig hilsen
Mogens Hansen
Søg
Alle emner
Teknologi
Udvikling
C/C++
Indstillinger
Spørgsmål
Tips
Usenet
Reklame
Statistik
Spørgsmål :
177580
Tips :
31968
Nyheder :
719565
Indlæg :
6409079
Brugere :
218888
Månedens bedste
Årets bedste
Sidste års bedste
Copyright © 2000-2024 kandu.dk. Alle rettigheder forbeholdes.