Dynamiczne zarządzanie pamięcią
Ostatnio zmodyfikowano 2011-03-13 11:08
sadlawyer Temat założony przez niniejszego użytkownika |
Dynamiczne zarządzanie pamięcią » 2011-03-13 10:59:51 Przerobiłem już podstawowy kurs C++, a dokładniej tylko to, co zostało dotychczas napisane i przeszedłem do dodatkowych materiałów. Robiłem część kursu o dynamicznym zarządzaniu pamięcią i chciałem skompilować sobie program, który autor zamieścił pod koniec kursu, aby trochę na nim poćwiczyć i zrozumieć o co chodzi w tym zarządzaniu pamięcią. Niestety nie udało mi się, gdyż kompilator mówi, że "memcpy nie jest zdeklarowany w tym zakresie". Może ktoś pomóc mi w zmodyfikowaniu tego kodu lub zaprezentować inny kod, który obejmie zagadnienia z dynamicznego zarządzania pamięcią? Kompilowałem, używając mingw. Tu jest ten kod: #include<iostream> #include<conio.h> using namespace std; int main() { int rozmiar = 0; int dlugosc = 0; char * tablica = NULL; cout << "Pusty wiersz konczy dzialanie programu." << endl; for( int i = 0; i < 40; i++ ) cout << "-"; cout << endl; string tWiersz; do { getline( cin, tWiersz ); if( tWiersz.length() > 0 ) { tWiersz += "\r\n"; if( dlugosc + tWiersz.length() + 1 > rozmiar ) { cout << "Tworzy nowy blok pamieci!" << endl; int tNarzutDanych = 20; rozmiar = tWiersz.length() + dlugosc + 1 + tNarzutDanych; char * tNoweDane = new char[ rozmiar ]; if( tablica != NULL ) memcpy( tNoweDane, tablica, dlugosc ); memcpy( & tNoweDane[ dlugosc ], & tWiersz[ 0 ], tWiersz.length() ); if( tablica != NULL ) delete[] tablica; tablica = tNoweDane; } else { cout << "Jest wystarczajaca ilosc miejsca!" << endl; } memcpy( & tablica[ dlugosc ], & tWiersz[ 0 ], tWiersz.length() ); dlugosc = tWiersz.length() + dlugosc; tablica[ dlugosc ] = 0; } } while( tWiersz.length() != 0 ); if( tablica != NULL ) { cout << "Dane jakie wypisales to: " << endl; cout << tablica << endl; delete[] tablica; } else cout << "Nie wpisales niczego!"; getch(); return( 0 ); }
|
|
ison |
» 2011-03-13 11:04:54 |
|
sadlawyer Temat założony przez niniejszego użytkownika |
» 2011-03-13 11:08:06 No to warto, aby autor dodał to też do tamtej części kursu. No i dzięki :) |
|
« 1 » |