Jeg er ved at lave et mindre c++ program, som er opdelt i funktioner. I princippet ser min problemstilling således ud:
void funktion() { int tal[5] = {1, 2, 3, 4, 5}; }
Hvordan bruger jeg så mit array i en ny funktion? Er klar over at jeg evt. kan få min funktion til at returne mit array, men kan ikke få det til at virke i praksis. Vil gerne kunne noget lignende:
Ja okay. Jeg burde selvfølgelig have sagt at dette ikke er en mulighed, da tallene i mit array bliver udregnet i den ene funktion. Hvis det hjælper, så finder den første funktion nogle primtal i et interval. Min næste funktion skal gerne kunne søge i dette interval.
Jeg tænkte spørgsmålet måske vil være relevant, så jeg har skrevet der her. Håber det er ok, ellers opretter jeg en ny tråd.
Man returnerer jo ikke selve Arrayet. Det man gør er vel at oprette en pointer, som peger på Arrayet og derved kan man tilgå Arrayet udenfor den funktion, hvor den er oprettet. F.eks. som jeg har gjort i dette eksempel:
NM, jeg tåger :D Har lige rettet koden og skrevet den om for at se, om det virkelig kan passe, at værdierne bliver sat til "default" og brugt til andre formål efter man er hoppet ud af funktionen, og det kan det til min store overraskelse.
Det giver vel også god mening... for ligesom lokale variabler, så eksiserer de kun i selve funktionen. Nåh, undskyld hvis jeg spildte din/jeres tid :D
using namespace std;
int *Ptr;
void funktion() { const int SIZE = 4; int Array[SIZE] = {14,13,12,11}; Ptr = &Array[SIZE];
for (int i = 4; i > 0; i--) cout << *(Ptr - i) << endl;
cout << endl << Ptr << " = "; }
void nfunktion() { cout << Ptr << endl << endl; for (int i = 4; i > 0; i--) cout << *(Ptr - i) << endl;
Den link fejl forsvinder nok hvis du fjerner extern paa Ptr.
Men men men - Ptr peger igen paa et lokalt array der er gaaet ud af scope med alle deraf foelgende katastrofer.
Synes godt om
Ny brugerNybegynder
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.