|
| 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/
| |
|
|