• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dlaczego funkcja nie działa

+1 głos
67 wizyt
pytanie zadane 2 września w C i C++ przez magda_19 Obywatel (1,650 p.)

Witam, przerabiam struktury i trafiłam na taki oto przykład:

#include <iostream>

using namespace std;

struct mojaStruktura
{
    int x;
};

void aktualizujStrukture (mojaStruktura moja_struktura)
{
    moja_struktura.x = 10;
}

int main()
{
    mojaStruktura moja_struktura;
    moja_struktura.x = 5;
    aktualizujStrukture(moja_struktura);
    cout << moja_struktura.x << endl;
    return 0;
}

Moje pytanie brzmi: dlaczego funkcja aktualizujStrukture nie działa (zakładam, że nie działa, skoro program pokazuje 5, zamiast 10)

2 odpowiedzi

+1 głos
odpowiedź 2 września przez dominx99 Użytkownik (860 p.)
wybrane 2 września przez magda_19
 
Najlepsza

Przy przekazywaniu parametru do fukcji tworzona jest jego kopia, możesz dodać znak & aby operować na oryginalnym obiekcie.

void aktualizujStrukture (mojaStruktura &moja_struktura)

 

komentarz 2 września przez magda_19 Obywatel (1,650 p.)
Dzięki, działa
+2 głosów
odpowiedź 2 września przez Artek Dyskutant (8,030 p.)
Nie znam C++ i ręki sobie nie dam obciąć ale instynkt podpowiada mi, że przekazując parametr do funkcji po prostu tworzysz kopię jej wartości i nie zmieniasz wcale zmiennej globalnej.

Podobne pytania

0 głosów
1 odpowiedź 323 wizyt
0 głosów
1 odpowiedź 60 wizyt
0 głosów
1 odpowiedź 40 wizyt
Porady nie od parady
Forum posiada swój własny chat IRC, dzięki któremu będziesz mógł po prostu pogadać z innymi Pasjonatami lub zapytać o jakiś problem. Podstrona z chatem znajduje się w menu pod ikoną człowieka w dymku.IRC

66,451 zapytań

113,207 odpowiedzi

239,680 komentarzy

46,704 pasjonatów

Przeglądających: 261
Pasjonatów: 13 Gości: 248

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...