<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Forum Pasja Informatyki - Najnowsze z tagiem wskaznika</title>
<link>https://forum.pasja-informatyki.pl/tag/wskaznika</link>
<description>Powered by Question2Answer</description>
<item>
<title>Wskaźnik na strukturę - pamięć</title>
<link>https://forum.pasja-informatyki.pl/417347/wskaznik-na-strukture-pamiec</link>
<description>

&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;iostream&amp;gt;

using namespace std;

typedef struct elListy
{
    int klucz; //4Bajty
    int portfel; //4Bajty
    struct elListy * nast; // 4Bajty ??
};


int main()
{

    cout &amp;lt;&amp;lt; sizeof(elListy) &amp;lt;&amp;lt; endl; // Zwraca 12
    return 0;
}
&lt;/pre&gt;



&lt;p&gt;Rozumiem, że dwie zmienne typu int zajmują 2 x 4B, wiec wychodzi na to, że&amp;nbsp;na wskaźnik:&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
struct elListy * nast&lt;/pre&gt;



&lt;p&gt;przypada 4B. Dlaczego?&lt;/p&gt;</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/417347/wskaznik-na-strukture-pamiec</guid>
<pubDate>Fri, 01 Mar 2019 19:21:46 +0000</pubDate>
</item>
<item>
<title>statyczny obiekt  (wskaźnik na obiekt) na stercie</title>
<link>https://forum.pasja-informatyki.pl/409736/statyczny-obiekt-wskaznik-na-obiekt-na-stercie</link>
<description>

&lt;p&gt;Witam&amp;nbsp;&lt;/p&gt;



&lt;p style=&quot;text-align: justify;&quot;&gt;Mam do wykonania statyczny obiekt(wskaźnik) szukam jakiś przykładów na internecie i kompletnie nic nie ma.&lt;/p&gt;



&lt;p style=&quot;text-align: justify;&quot;&gt;Czy mógłby ktoś poratować jakiś przykładem?&amp;nbsp;&amp;nbsp;&lt;/p&gt;</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/409736/statyczny-obiekt-wskaznik-na-obiekt-na-stercie</guid>
<pubDate>Sat, 26 Jan 2019 12:38:44 +0000</pubDate>
</item>
<item>
<title>Wskaźnik do metody</title>
<link>https://forum.pasja-informatyki.pl/408770/wskaznik-do-metody</link>
<description>

&lt;p&gt;Hej, mógł by ktoś doradzić jak stworzyć wskaźnik do funkcji w klasie?
&lt;br&gt;
&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
string (*p) () = &amp;amp;sh.getFYT;
    cout &amp;lt;&amp;lt; p() &amp;lt;&amp;lt; endl;
    cout &amp;lt;&amp;lt; p()[3] &amp;lt;&amp;lt; endl;&lt;/pre&gt;



&lt;p&gt;
&lt;br&gt;

&lt;br&gt;
Próbowałem w ten sposób, ale niestety nie mogę konwertować z string na string(__cdecl*)(void), cokolwiek to znaczy hah&lt;/p&gt;</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/408770/wskaznik-do-metody</guid>
<pubDate>Mon, 21 Jan 2019 21:23:17 +0000</pubDate>
</item>
<item>
<title>Wskaźnik NULL</title>
<link>https://forum.pasja-informatyki.pl/403459/wskaznik-null</link>
<description>

&lt;p&gt;Witam wszystkich. Mam problem, wydaje mi się, że jest o banalny, ale kombinuje i nie przynosi to oczekiwanych efektów, dlatego zwracam się do Was o pomoc. Mam do napisania program, który poprosi użytkownika o podanie dwóch osobnych zmiennych imienia i nazwiska w funkcji. Funkcja ta zwraca obie wartości za pośrednictwem dodatkowych elementów wskaźnikowych przekazywanych do niej podczas wywołania. Program ma poprosić użytkownika o podanie nazwiska tylko wtedy, gdy w parametrze dotyczącym nazwiska funkcja otrzyma wskaźnik o wartości NULL. Poniżej wstawiam swój kod, pomoże ktoś mi w tym zadaniu? Z góry dziękuję za odpowiedź.&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;iostream&amp;gt;

using namespace std;

void podaj1(string *imie, string *w_nazwisko)
{
    cout &amp;lt;&amp;lt; &quot;Podaj imie: &quot;;
    cin &amp;gt;&amp;gt; *imie;
    if( w_nazwisko != NULL )
    {
        cout &amp;lt;&amp;lt; &quot;Podaj nazwisko: &quot;;
        cin &amp;gt;&amp;gt; *w_nazwisko;
    }
}

int main()
{
    string imie;
    string nazwisko;
    string *w_nazwisko = NULL;
    w_nazwisko = &amp;amp;nazwisko;

    podaj1(&amp;amp;imie, w_nazwisko);
    cout &amp;lt;&amp;lt; &quot;Aktualne imie i nazwisko: &quot; &amp;lt;&amp;lt; imie &amp;lt;&amp;lt; &quot;  &quot; &amp;lt;&amp;lt; nazwisko &amp;lt;&amp;lt; endl;

    return 0;
}&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/403459/wskaznik-null</guid>
<pubDate>Mon, 31 Dec 2018 09:46:17 +0000</pubDate>
</item>
<item>
<title>Obiektowe wskaźnik na funkcje (C++)</title>
<link>https://forum.pasja-informatyki.pl/360706/obiektowe-wskaznik-na-funkcje-c</link>
<description>

&lt;p&gt;Podczas robienia zadania natchnąłem się na problem ze wskaźnikiem funkcji nie wiem dlaczego nie dzieła i jaki jest w tym zawarty błąd:&lt;/p&gt;



&lt;p&gt;plik nagłówkowy:&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
#ifndef LIST_H_
#define LIST_H_

typedef int Item;
class List
{
        private:
                enum { Max = 10 };
                Item items[Max];
                int top=0;
        public:
                List();
                bool isempty() const;
                void * up_value_top (Item &amp;amp; item);
                void visit(void (*do_something) (Item &amp;amp;));
};

#endif&lt;/pre&gt;



&lt;p&gt;main:&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &quot;list.h&quot;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;cctype&amp;gt;

List::List() { top=0; }
bool List::isempty() const { return top == 0; }

void * List::up_value_top (Item &amp;amp; item) { 
        bool one = true;
        bool zero = false;
        if(top &amp;lt; Max) 
        {       items[top++] = item; 
                std::cout &amp;lt;&amp;lt; one &amp;lt;&amp;lt; std::endl; 
        }
        else
                std::cout &amp;lt;&amp;lt; zero &amp;lt;&amp;lt; std::endl;} 

void List::visit(void (*do_something) (Item &amp;amp; item)) // ??? 
{       for(int i=0; i&amp;lt;Max; i++)
                std::cout &amp;lt;&amp;lt; top++ &amp;lt;&amp;lt; &quot; element listy: &quot; &amp;lt;&amp;lt; items[i] &amp;lt;&amp;lt; std::endl; 
}

int main()
{
        List check_list;
        int number;
        char letter;
        std::cout &amp;lt;&amp;lt; &quot;Sprawdzanie list, wybierz opcje:\n1. Dodaj element\n2. Zawartość listy\n3. Koniec sprawdzania\n\n&quot;;
        while(std::cin &amp;gt;&amp;gt; letter &amp;amp;&amp;amp; isalpha(letter))
        {
                switch(letter)
                {
                        case '1':
                                check_list.up_value_top(number);
                                check_list.visit(check_list.up_value_top(number));
                        break;
                        case '2':
                                if(check_list.isempty())
                                        std::cout &amp;lt;&amp;lt; &quot;Stos pusty!\n&quot;;
                                else
                                        check_list.visit(up_value_top(number));
                        break;
                        case '3':
                        break;
                }//switch
        }//while
        std::cout &amp;lt;&amp;lt; &quot;Zakończenie programu\n&quot;;
}//main
&lt;/pre&gt;



&lt;p&gt;Błędy (próbowałem poprawiać, ale tworzą się nowe)&lt;/p&gt;



&lt;pre class=&quot;brush:plain;&quot;&gt;
list.cpp:35:45: error: invalid conversion from ‘void*’ to ‘void (*)(Item&amp;amp;) {aka void (*)(int&amp;amp;)}’ [-fpermissive]
     check_list.visit(check_list.up_value_top(number));
                      ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
list.cpp:18:6: note:   initializing argument 1 of ‘void List::visit(void (*)(Item&amp;amp;))’
 void List::visit(void (*do_something) (Item &amp;amp; item)) // ???
      ^~~~
list.cpp:41:23: error: ‘up_value_top’ was not declared in this scope
      check_list.visit(up_value_top(number));&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/360706/obiektowe-wskaznik-na-funkcje-c</guid>
<pubDate>Mon, 25 Jun 2018 10:59:09 +0000</pubDate>
</item>
<item>
<title>Wskaźnik 'this' (C++)</title>
<link>https://forum.pasja-informatyki.pl/353074/wskaznik-this-c</link>
<description>

&lt;p&gt;Witam&lt;/p&gt;



&lt;p&gt;Napisałem pewniem program, który był dla mnie ćwiczeniem nauki kontruktorów i destruktorów działa całkowicie tak jakbym tego chciał. W kodzie poniżej zostały uwzględnione wskaźniki this&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &quot;p.h&quot;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;math.h&amp;gt;
//aby referencja mogłać poprawnie musi być 'const' 
Marka::Marka(const std::string &amp;amp; corp, double liczba) {this-&amp;gt;nazwa = corp; this-&amp;gt;kwota = liczba;
        std::cout &amp;lt;&amp;lt; &quot;Podaj nazwe auta: &quot; &amp;lt;&amp;lt; nazwa &amp;lt;&amp;lt; &quot; Podaj kwote: &quot; &amp;lt;&amp;lt; kwota &amp;lt;&amp;lt; &quot;\n&quot;; }
//potegowanie liczby przeciażenie nazwy konstuktora 
Marka::Marka(double liczba) { this-&amp;gt;kwota=liczba; std::cout &amp;lt;&amp;lt; kwota *pow(2,4) &amp;lt;&amp;lt; &quot;\n&quot;; }
//wyswietenie tekstu 
Marka::Marka(const std::string &amp;amp; corp) { this-&amp;gt;nazwa=corp; std::cout &amp;lt;&amp;lt; nazwa &amp;lt;&amp;lt; &quot;\n\n&quot;; }
Marka::~Marka() { std::cout &amp;lt;&amp;lt; &quot;Zakończenie pracy obiektu !!!\n&quot;; }
int main()
{
        Marka samochodu(&quot;Bentley&quot;, 1333.22);
        Marka podatek = Marka(235.12);
        Marka * asap_nigga = new Marka(&quot;Like a Boss&quot;); // przydzial dynamiczny
        delete asap_nigga; //nie użycie delete powoduje, że obiekt dalej istnieje po zakończeniu programu
        return 0;
}&lt;/pre&gt;



&lt;p&gt;W poniższym już nie :&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &quot;p.h&quot;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;math.h&amp;gt;
//aby referencja mogłać poprawnie musi być 'const' 
Marka::Marka(const std::string &amp;amp; corp, double liczba) {nazwa = corp; kwota = liczba;
        std::cout &amp;lt;&amp;lt; &quot;Podaj nazwe auta: &quot; &amp;lt;&amp;lt; nazwa &amp;lt;&amp;lt; &quot; Podaj kwote: &quot; &amp;lt;&amp;lt; kwota &amp;lt;&amp;lt; &quot;\n&quot;; }
//potegowanie liczby przeciażenie nazwy konstuktora 
Marka::Marka(double liczba) { kwota=liczba; std::cout &amp;lt;&amp;lt; kwota *pow(2,4) &amp;lt;&amp;lt; &quot;\n&quot;; }
//wyswietenie tekstu 
Marka::Marka(const std::string &amp;amp; corp) { nazwa=corp; std::cout &amp;lt;&amp;lt; nazwa &amp;lt;&amp;lt; &quot;\n\n&quot;; }
Marka::~Marka() { std::cout &amp;lt;&amp;lt; &quot;Zakończenie pracy obiektu !!!\n&quot;; }
int main()
{
        Marka samochodu(&quot;Bentley&quot;, 1333.22);
        Marka podatek = Marka(235.12);
        Marka * asap_nigga = new Marka(&quot;Like a Boss&quot;); // przydzial dynamiczny
        delete asap_nigga; //nie użycie delete powoduje, że obiekt dalej istnieje po zakończeniu programu
        return 0;
}&lt;/pre&gt;



&lt;p&gt;Problem albo &quot;nie problem&quot; polega na tym, że w przypadku użycia jak i nie kompilator i tak odwołuję się poprawnie do składowych klasy.&lt;/p&gt;



&lt;p&gt;Tak więc jaki sens jest ich używania (Ogólnie !) ??&lt;/p&gt;</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/353074/wskaznik-this-c</guid>
<pubDate>Sat, 26 May 2018 11:04:10 +0000</pubDate>
</item>
<item>
<title>Operator indeksowy, wskaźnik, c++</title>
<link>https://forum.pasja-informatyki.pl/342371/operator-indeksowy-wskaznik-c</link>
<description>

&lt;pre class=&quot;brush:cpp;&quot;&gt;
    string operator[](int i)
    {
        if (liczba_nadziei &amp;gt; i) return &quot;Jest tam nadzieja&quot;;
        else return &quot;Nie ma tam nadziei&quot;;
    }

    operator string()
    {
    if (liczba_nadziei &amp;gt; 0) return &quot;Jest gdzieœ nadzieja&quot;;
    else return &quot;Brak nadziei&quot;;
    }&lt;/pre&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
 cout &amp;lt;&amp;lt; (string)(*studenci)[0] &amp;lt;&amp;lt; endl;
&lt;/pre&gt;



&lt;p&gt;Czemu w tym przypadku używany jest operator indeksowania?&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
 cout &amp;lt;&amp;lt; (string)studenci[1] &amp;lt;&amp;lt; endl;&lt;/pre&gt;



&lt;p&gt;A w tym przypadku operator string()?&lt;/p&gt;</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/342371/operator-indeksowy-wskaznik-c</guid>
<pubDate>Wed, 11 Apr 2018 13:21:54 +0000</pubDate>
</item>
<item>
<title>Struktura i wskaznik</title>
<link>https://forum.pasja-informatyki.pl/341770/struktura-i-wskaznik</link>
<description>

&lt;p&gt;Witam, chciałbym się upewnić czy dobrze myślę: mam taki pseudo kod:&lt;/p&gt;



&lt;pre class=&quot;brush:plain;&quot;&gt;
struct node{
       int x;
       node *next;
}
void add(node *head){

}
int main()
{
    node *head = 0;
    add(head);
    return 0;
}&lt;/pre&gt;



&lt;p&gt;W takim sensie do funkcji add przesyłam nie orginalna strukturę tylko jej kopię?? Musiałbym dodać druga gwiazdkę lub referencje żeby to miało sens? Bo mógłbym zmienić funkcję żeby zwracała strukturę to wtedy miałoby to sens ale tak to nie? Dobrze to rozumiem..?&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/341770/struktura-i-wskaznik</guid>
<pubDate>Mon, 09 Apr 2018 07:24:02 +0000</pubDate>
</item>
<item>
<title>Wskaźnik funkcji</title>
<link>https://forum.pasja-informatyki.pl/327609/wskaznik-funkcji</link>
<description>

&lt;p&gt;Wskaźnik funkcji ma być parametrem innej funkcji i być w niej wywoływany. Problem jest dość obszerny, ponieważ nie wiem w jaki sposób to zadeklarować poprawnie, jak również nie rozumiem działania wskaźników funkcji w parametrach.&lt;/p&gt;



&lt;pre class=&quot;brush:plain;&quot;&gt;
#include &amp;lt;iostream&amp;gt;

double * add(double x, double y);
double *calculate(double p, double m, double (*add)(double, double));

int main()
{
        double l, k;
        for(int i=0; i &amp;lt; 3; i++)
        {
                std::cout &amp;lt;&amp;lt; &quot;Podaj wartosc 1: &quot;;
                std::cin &amp;gt;&amp;gt; l;
                std::cout &amp;lt;&amp;lt; &quot;Podaj wartosc 2: &quot;;
                std::cin &amp;gt;&amp;gt; k;

                double * q = calculate(l, k, *add);
                std::cout &amp;lt;&amp;lt; &quot;Wartosc: &quot; &amp;lt;&amp;lt; q &amp;lt;&amp;lt; &quot;\nAdres: &quot; &amp;lt;&amp;lt; &amp;amp;q &amp;lt;&amp;lt; std::endl;
        }
        return 0;
}

double * add(double x, double y)
{
        return x + y;
}

double *calculate(double p, double m, double (*add)(double, double))
{
        double *(*pf)(double, double) = * add(p, m);

        return * pf;
}
&lt;/pre&gt;



&lt;p&gt;Wprowadzałem różne modyfikacje w programie i przyznaje się że nie wiem gdzie powinny znajdować się znaki wyłuskania.&lt;/p&gt;</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/327609/wskaznik-funkcji</guid>
<pubDate>Sat, 17 Feb 2018 18:09:01 +0000</pubDate>
</item>
<item>
<title>Wskażnik na strukturę.</title>
<link>https://forum.pasja-informatyki.pl/317140/wskaznik-na-strukture</link>
<description>

&lt;p&gt;Witam mam pewien problem, program działa tylko dla 1 obiegu pętli, potem gdy wpisuje dane już przerywa działanie. Oto kod, myślę że zle alokuje pamieć..&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;iostream&amp;gt;

using namespace std;
struct point{
    int x;
    int y;
};
int isline(struct point *tab)
{
    int a,b = 0;
     a = (tab[0].y - tab[1].y)/(tab[0].x -tab[1].x);
     b =  tab[0].y - a * tab[0].x;
    if(a*tab[2].x + b == tab[2].y){
    return 1;
    }
    else
    {
        return 0;
    }
}
int main() {

	int n;
    cin &amp;gt;&amp;gt; n;
	for(int i = 0; i &amp;lt; n; i++)
	{
		struct point *tab;
		tab = (point*) malloc(sizeof(point) * 3);
        for(int k = 0; k &amp;lt; 3; k++)
        {
            cin &amp;gt;&amp;gt; tab[k].x &amp;gt;&amp;gt; tab[k].y;
        }
        if(isline(tab) == 1)
        {
            cout &amp;lt;&amp;lt; &quot;TAK&quot; &amp;lt;&amp;lt; endl;
        }
        else
        {
            cout &amp;lt;&amp;lt; &quot;NIE&quot; &amp;lt;&amp;lt; endl;
        }
		free(tab);
	}


	return 0;
}&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/317140/wskaznik-na-strukture</guid>
<pubDate>Tue, 09 Jan 2018 11:17:05 +0000</pubDate>
</item>
<item>
<title>Jak dostac sie do wskaznika w strukturze przez wskaznik na strukture</title>
<link>https://forum.pasja-informatyki.pl/257791/jak-dostac-sie-do-wskaznika-w-strukturze-przez-wskaznik-na-strukture</link>
<description>

&lt;p&gt;Witam,&lt;/p&gt;



&lt;p&gt;Chciałbym zapytać forumowiczów jak dostac sie do wskaznika w strukturze przez wskaznik na strukture.&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;Kod:&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;iostream&amp;gt;

using namespace std;


struct mojaStruktura {

       int zm1;
       int zm2;
       int *zm3;
       int *zm4;
};

int main()
{

    mojaStruktura my;


    mojaStruktura *nowe = &amp;amp;my;


    nowe-&amp;gt;zm1 = 2;
    (*nowe).zm2 = 3;

    int *heh;

    *heh =8;

//Tak sie nie da ;(
//Jak dostać się do zmiennej *zm3 ??
    nowe-&amp;gt;*zm3 = 5;


    cout&amp;lt;&amp;lt;nowe-&amp;gt;zm1;
    cout&amp;lt;&amp;lt;endl;
    cout&amp;lt;&amp;lt;nowe-&amp;gt;zm2;
    cout&amp;lt;&amp;lt;endl;
    cout&amp;lt;&amp;lt;*heh;
//Tak sie nie da
    cout&amp;lt;&amp;lt;nowe-&amp;gt;*zm3;

    return 0;
}
&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/257791/jak-dostac-sie-do-wskaznika-w-strukturze-przez-wskaznik-na-strukture</guid>
<pubDate>Mon, 29 May 2017 15:01:48 +0000</pubDate>
</item>
</channel>
</rss>