online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
#include <iostream> using namespace std; /* PO CO podwójny wskaźnik? ETAP 1. Gdy przekazujemy do podfunkcji wskaźnik, to: adres na który wskazuje jest przekazany dobrze, ale sam wskaźnik (jako pojemnik) w podfunkcji - to kopia. Gdyby w podfunkcji próbować wskaźnikowi zmienić wskazywaną zmienną, to po powrocie do main() zmiana nie poskutkuje: nie pracowaliśmy na oryginalnym wskaźniku. ETAP 2. Można jednak przenosić ... adres powyższego wskaźnika. Do tego służy podwójny wskaźnik, czyli double** . Mając w podfunkcji adres oryginalnego wskaźnika, można mu zmienić wskazywaną zmienną. */ void funpointer (double* ptr) { cout << "[fun (double* )] Adres wskazywanej zmiennej : " << ptr << endl; double y; ptr = &y; cout << "[fun (double* )] Adres wskazywanej zmiennej : " << ptr << endl; } void fun_doublepointer ( double** ptr2 ) { cout << "[fun (double**)] Adres wskazywanej zmiennej : " << *ptr2 << endl; double y; // Uwaga: procedura nie jest bezpieczna, bo po funkcji ta zmienna przestanie istnieć. *ptr2 = &y; cout << "[fun (double**)] Adres wskazywanej zmiennej : " << *ptr2 << endl; } int main () { double x = 10; double* ptrmain = &x; cout << "[ main () ] Adres wskazywanej zmiennej : " << ptrmain << endl; funpointer ( ptrmain ); cout << "[ main () ] Adres wskazywanej zmiennej : " << ptrmain << endl; cout << "\n\n"; fun_doublepointer ( &ptrmain ); cout << "[ main () ] Adres wskazywanej zmiennej : " << ptrmain << endl; return 0; }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue