/ 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
Bech_bb 500
kyllekylle 500
jdjespers.. 500
gibson 300
scootergr.. 300
molokyle 287
10  strarup 270
at bruge malloc
Fra : Johs32


Dato : 02-03-06 22:28

Jeg har en funktion der tager en pointer til en struct som argument:

void blop(struct test *new);

i main gør jeg følgende:

struct test new;
blop(&new);


Jeg går udfra at idet jeg ikke erklærer new som en pointer så er der ingen
grund til at malloc'ke den.

Havde jeg derimod i main gjort:

struct test *new;

så skulle den malloc'kes før jeg kaldte blop:

new=malloc(sizeof(struct test));

blop(new);

Er ovenstående korrekt?

 
 
Bertel Brander (02-03-2006)
Kommentar
Fra : Bertel Brander


Dato : 02-03-06 22:58

Johs32 wrote:
> Jeg har en funktion der tager en pointer til en struct som argument:
>
> void blop(struct test *new);
>
> i main gør jeg følgende:
>
> struct test new;
> blop(&new);
>
>
> Jeg går udfra at idet jeg ikke erklærer new som en pointer så er der ingen
> grund til at malloc'ke den.

Korrekt.

> Havde jeg derimod i main gjort:
>
> struct test *new;
>
> så skulle den malloc'kes før jeg kaldte blop:
>
> new=malloc(sizeof(struct test));
>
> blop(new);
>
> Er ovenstående korrekt?

Ja.

Du kunne dog også lave det sidste eksempel med:
struct test Whatever;
struct test *new = &Whatever;

blop(new);

Så du behøver ikke malloc'e selvom det er en pointer, men den skal
pege på noget.

(I øvrigt er new måske ikke det mest velegnede navn til en variabel, en
dag skal din kode måske køre som C++, og så kan det give problemer)

--
Absolutely not the best homepage on the net:
http://home20.inet.tele.dk/midgaard
But it's mine - Bertel

Søg
Reklame
Statistik
Spørgsmål : 177428
Tips : 31962
Nyheder : 719565
Indlæg : 6407944
Brugere : 218877

Månedens bedste
Årets bedste
Sidste års bedste