Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Struktura, lista dwukierunkowa, sortowanie.

Ostatnio zmodyfikowano 2017-01-14 19:11
Autor Wiadomość
Huncwotka
Temat założony przez niniejszego użytkownika
Struktura, lista dwukierunkowa, sortowanie.
» 2017-01-14 18:51:17
Mam program napisany w języku C, jednak muszę go przepisać na język C++. Czy może mi ktoś poradzić, jak poprawnie przepisać te trzy linijki kodu?

tmp = (Osoba*)malloc(sizeof(Osoba));
tmp->dane.imie = (char*)malloc(sizeof(char)* strlen((*head)->dane.imie) + 1);
strcpy(tmp->dane.imie, (*head)->dane.imie);
P-156434
karambaHZP
» 2017-01-14 19:11:16
» Kurs C++Dynamiczne zarządzanie pamięcią new i delete lekcja
A jeszcze lepiej użyć std::unique_ptr lub std::shared_ptr.
» Kurs C++ » Poziom 3Zmienne przechowujące tekst lekcja

C/C++
#include <iostream>
#include <memory>
#include <string>

struct Person {
    std::string name; // std::string sam alokuje i zwalnia pamięć na łańcuch
    std::string surname;
};

int main()
{
    std::unique_ptr < Person > person( new Person ); // alokacji i zwoalniania pamięci pilnuje klasa
    std::getline( std::cin, person->name ); // pobieranie danych od użytkownika std::getline()
    std::getline( std::cin, person->surname );
   
    std::cout << person->name << ' ' << person->surname << '\n';
   
    // ew. gołe wskaźniki, których nie polecam
    Person * person2 = new Person(); // alokacja pamięci na persone
    std::getline( std::cin, person2->name );
    std::getline( std::cin, person2->surname );
    std::cout << person2->name << ' ' << person2->surname << '\n';
   
    delete person2; // zwolnienie pamięci zaalokowanej operatorem new, ważne
}

edit:
tutaj masz wszystko fajnie wyjaśnione:
http://www.p-programowanie.pl​/cpp/lista-jednokierunkowa-c/
P-156435
« 1 »
  Strona 1 z 1