| | |
| Stránka: 1 z 1
| [ Príspevkov: 2 ] | |
Autor | Správa |
---|
Registrovaný: 04.08.08 Prihlásený: 28.10.11 Príspevky: 152 Témy: 42 |
Preco mi to nemeni adresu retazca, ked zadam nejaky uplne iny pri 2. volani funkcie getname.
Kód: #include <iostream> #include <cstring>
using namespace std;
char* getname(void);
int main(void) { char* name;
name = getname(); cout << name << " na " << (int*) name << endl; delete [] name;
name = getname(); cout << name << " na " << (int*) name << endl; delete [] name;
cin.get(); return 0; }
char* getname(void) {
char pole[80];
cout << "Zadaj svoje meno "; cin.get(pole, 80); cin.get(); char* p = new char [strlen(pole) + 1]; strcpy(p, pole);
return p; }
|
|
Registrovaný: 30.04.08 Prihlásený: 15.05.15 Príspevky: 884 Témy: 3 |
Lebo pamat sa najprv uvolni, a potom sa hned znova alokuje na tom istom mieste, skus ten prvy retazec uvolnit az po nacitani druheho...
Kód: #include <iostream> #include <cstring>
using namespace std;
char* getname(void);
int main(void) { char* name;
name = getname(); cout << name << " na " << (int) name << endl; //delete [] name; char * pom = name; ///// name = getname(); cout << name << " na " << (int) name << endl; delete [] name; delete [] pom;
cin.get(); return 0; }
char* getname(void) {
char pole[80];
cout << "Zadaj svoje meno "; cin.get(pole, 80); cin.get(); char* p = new char [strlen(pole) + 1]; strcpy(p, pole);
return p; }
_________________ Empty your memory, with a free()… like a pointer! If you cast a pointer to an integer, it becomes the integer, if you cast a pointer to a struct, it becomes the struct… The pointer can crash…, and can overflow… Be a pointer my friend… |
|
| Stránka: 1 z 1
| [ Príspevkov: 2 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|