/ 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
Allokering
Fra : Jakob Møbjerg Nielse~


Dato : 28-07-04 14:34

Hej

Så er jeg, efter et par års pause, blevet kastet ud i C igen

Mit problem er, kort sagt, at jeg skal finde ud af om en pointer
allerede har fået allokeret noget hukommelse eller ej. Nærmere bestemt
en char *.

Jeg kan ikke huske hvordan man gør, eller om det overhovedet kan lade
sig gøre, og jeg kan ikke finde noget om det i K&R.

--
Jakob Møbjerg Nielsen | Nordvestjysk Brass Band - http://nvbb.dk
jakob@dataloger.dk | Vinder af 1. division
http://www.jakobnielsen.dk/ | - Grenland Brass Festival 2004
| http://www.grenlandbrass.com/festival/

 
 
Niels Dybdahl (28-07-2004)
Kommentar
Fra : Niels Dybdahl


Dato : 28-07-04 15:16

> Så er jeg, efter et par års pause, blevet kastet ud i C igen
>
> Mit problem er, kort sagt, at jeg skal finde ud af om en pointer
> allerede har fået allokeret noget hukommelse eller ej. Nærmere bestemt
> en char *.

Det er ikke muligt mig bekendt.

Niels Dybdahl



Ivan Johansen (28-07-2004)
Kommentar
Fra : Ivan Johansen


Dato : 28-07-04 17:57

Jakob Møbjerg Nielsen wrote:
> Mit problem er, kort sagt, at jeg skal finde ud af om en pointer
> allerede har fået allokeret noget hukommelse eller ej. Nærmere bestemt
> en char *.
>
> Jeg kan ikke huske hvordan man gør, eller om det overhovedet kan lade
> sig gøre, og jeg kan ikke finde noget om det i K&R.

Det kan kun lade sig gøre hvis du selv sørger for at sætte pointeren til
NULL når den ikke har noget allokeret. Så kan du teste på om den er NULL.

Ivan Johansen



Niels Dybdahl (29-07-2004)
Kommentar
Fra : Niels Dybdahl


Dato : 29-07-04 09:35

> > Mit problem er, kort sagt, at jeg skal finde ud af om en pointer
> > allerede har fået allokeret noget hukommelse eller ej. Nærmere bestemt
> > en char *.
> >
> > Jeg kan ikke huske hvordan man gør, eller om det overhovedet kan lade
> > sig gøre, og jeg kan ikke finde noget om det i K&R.
>
> Det kan kun lade sig gøre hvis du selv sørger for at sætte pointeren til
> NULL når den ikke har noget allokeret. Så kan du teste på om den er NULL.

Det virker dog ikke hvis pointeren sættes til at pege på en statisk værdi
(f.ex char*sz="Hej"). Så ville jeg ikke kalde det at "pointeren har fået
allokeret noget hukommelse", man kan f.eks så ikke deallokere hukommelsen
med delete.
Men det er lidt uklart hvad JMN har tænkt sig at bruge checket til.

Niels Dybdahl



Jakob Møbjerg Nielse~ (29-07-2004)
Kommentar
Fra : Jakob Møbjerg Nielse~


Dato : 29-07-04 12:01

Niels Dybdahl wrote:
> Det virker dog ikke hvis pointeren sættes til at pege på en statisk værdi
> (f.ex char*sz="Hej"). Så ville jeg ikke kalde det at "pointeren har fået
> allokeret noget hukommelse", man kan f.eks så ikke deallokere hukommelsen
> med delete.

Så lad os da kalde det dynamisk allokering i stedet. Det ser i hvert
fald ud til at du forstod meningen med mit indlæg

> Men det er lidt uklart hvad JMN har tænkt sig at bruge checket til.

Det er en længere historie, men problemet er blevet løst.

--
Jakob Møbjerg Nielsen | Nordvestjysk Brass Band - http://nvbb.dk
jakob@dataloger.dk | Vinder af 1. division
http://www.jakobnielsen.dk/ | - Grenland Brass Festival 2004
| http://www.grenlandbrass.com/festival/

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

Månedens bedste
Årets bedste
Sidste års bedste