Kopiowanie tablic dynamicznych

Odpowiedz Nowy wątek
2014-12-31 22:47
Autor
0

Mam dwie tablice dynamiczne:

char * buffer;
char * message;

Tablice należą do osobnych klas;

Chciałbym przekopiować zawartość buffer do message

Próbowałem tak:

memcpy( tcp.message, file.buffer, sizeof( char* ) * file.length );

ale program się wywala.

Pozostało 580 znaków

2014-12-31 23:05
kq
2

Jak to C++ to zamiast się męczyć w ten sposób, użyj std::vector<char> lub w tym przypadku std::string i kopiowanie (i nie tylko) stanie się trywialne.

Twoim bezpośrednim problemem jest prawdopodobnie to, ƶe nie zaalokowałeś pamięci, więc memcpy trzeba by poprzedzić tcp.message = new char[file.length];, tylko potem oczywiście trzeba poprawnie i dokładnie jeden raz tę pamięć zwolnić.


ciekawe że :P - spartanPAGE 2015-01-01 02:00
przyzwyczajenie z wykopu, tutaj staram się pisać standardowo, ale najwyraźniej czasem można się zapomnieć :p - kq 2015-01-01 02:02
Dlaczego na wypoku piszesz tak? (Czysta ciekawość) - Endrju 2015-01-01 15:44
Podoba mi się ta literka, łatwo ją pisać ze zmienionym układem klawiatury no i trzeba się wyróżniać ;) - kq 2015-01-01 17:14

Pozostało 580 znaków

2015-01-01 19:19
Autor
0

Nie to nie to. Wcześniej miałem ja już ustaloną.

Ja wczytuje plik tekstowy i chciałbym go przesłać protokołem tcp przy pomocy klasy sf::Packet;
http://www.sfml-dev.org/tutorials/2.2/network-packet.php
http://www.sfml-dev.org/documentation/2.2/classsf_1_1Packet.php

do pakietu przesyłałem dane z char* buffer do sf::Packet packet tak:

tcp.packet << file.buffer;

a potem (w innym programie) z pakietu w kładam do bufora by zapisać dane.

tcp.packet >> file.buffer;

Ale tworzy się pusty plik.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0