/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Sletning af pointere
Fra : Bear


Dato : 25-05-01 13:33

Hey there

Er der nogen måde at undersøge om den pointer man vil slette indgår i et
pointer array?

Ex:

class X{
public:
X(int val);
X();
~X();
int value;
};

X::X(){value=0;}

X::X(int val)
: value(val){}

X:X()
{
cout << value << " died" << endl;
}

void cleanup(X* x)
{
//pseudo kode
if array
delete [] x;
else
delete x;
}

int main()
{
X* x1 = new X[20];
X* x2 = new X();
cleanup(x1);
cleanup(x2);
}


Hvis kun man bare vælger delete [] x i cleanup(X* x) og det ikke er et
pointer array får man en memory violation :(

mvh

Bear

ICQ: 2745075



 
 
Igor V. Rafienko (25-05-2001)
Kommentar
Fra : Igor V. Rafienko


Dato : 25-05-01 16:05

* the-merc@usa.net

> Er der nogen måde at undersøge om den pointer man vil slette indgår
> i et pointer array?


Nei, ikke i utgangspunktet. Men nå kan man la være å bruke arrays da :)

[snip]





ivr
--
Documentation is like sex: when it is good, it is very, very good; and
when it is bad, it is better than nothing.
                  -- Dick Brandon

Mogens Hansen (25-05-2001)
Kommentar
Fra : Mogens Hansen


Dato : 25-05-01 16:34

> int main()
> {
> X* x1 = new X[20];
> X* x2 = new X();

skriv
X* x2 = new X[1];
i stedet, så er det problem løst.

Et godt råd: brug std::vector i stedet.

Venlig hilsen

Mogens Hansen



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste