[c] pointer vragen

Pagina: 1
Acties:
  • 269 views

Acties:
  • 0 Henk 'm!

  • rxr1991
  • Registratie: Mei 2007
  • Laatst online: 01-09 09:59
Na een tijdje les te hebben gehad in java zijn we nu begonnen met c maar ik loop nu vast op de pointers. We hebben een opdracht gekregen en ik weet hoe alles zou werken zonder de pointers maar nu die dingen er instaan loop ik helemaal vast.

Om een struc aan te maken en te vullen dat lukt normaal wel maar nu er allerlei pointers instaan snap ik er niet meer zoveel van. Heb ik veel sites doorgelezen maar ik snap er niets van

dit is de code
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <stdio.h>

#include <stdlib.h>


struct listNode {

    int number;

    struct listNode *nextPtr;

};


typedef struct listNode LISTNODE;

typedef LISTNODE *LISTNODEPTR;


// insert new number into ordered list

void insert(LISTNODEPTR *, int);


// remove number(s) from list

void delete(LISTNODEPTR *, int);


// print all numbers in list in a loop (non-recursive)

void printList(LISTNODE *);


// print all numbers in list recursively

void printListRecursive(LISTNODE *);


// returns 1 if list is empty, 0 otherwise

int isEmpty(LISTNODE *);

int main ()

{

    return 0;

}


zoals hier

typedef struct listNode LISTNODE;

typedef LISTNODE *LISTNODEPTR;


hier maakt hij eerst het typedef listnode aan en vervolgens maakt hij een type *listnodeptr.

Kan ik dan ook op mijn normale mannier hem vullen

listnodeptr test;
test.number = 1;

en wat is *nextPtr

alvast bedankt.

Ik vraag niet om antwoorden ik hoop alleen dat jullie mij opweg kunnen helpen.

Acties:
  • 0 Henk 'm!

  • asfaloth_arwen
  • Registratie: Februari 2005
  • Laatst online: 17:57
Maak aub even gebruik van [code] tags.

Verder, welk gedeelte van pointers snap je niet? Theorie, hoe het toe te passen?

Deze trouwens al eens gevonden en goed doorgenomen? Vrij helder imo: http://www.cplusplus.com/doc/tutorial/pointers/

[ Voor 30% gewijzigd door asfaloth_arwen op 08-12-2009 13:06 ]

Specs


Acties:
  • 0 Henk 'm!

  • Emmeau
  • Registratie: Mei 2003
  • Niet online

Emmeau

All your UNIX are belong to us

Eerst maar eens de code tag eromheen.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
#include <stdlib.h>

struct listNode {
    int number;
    struct listNode *nextPtr;
};

typedef struct listNode LISTNODE;
typedef LISTNODE *LISTNODEPTR;

// insert new number into ordered list
void insert(LISTNODEPTR *, int);

// remove number(s) from list
void delete(LISTNODEPTR *, int);

// print all numbers in list in a loop (non-recursive)
void printList(LISTNODE *);

// print all numbers in list recursively
void printListRecursive(LISTNODE *);

// returns 1 if list is empty, 0 otherwise
int isEmpty(LISTNODE *);

int main ()
{
    return 0;
}


Je bent bezig kennelijk een single linked list te bouwen.
nextptr is het volgende element in de lijst.

bij Pointers gebruik je ->

even een klein voorbeeld, de rest mag je zelf verzinnen

code:
1
2
3
4
5
...
LISTNODE *startlist = (*LISTNODE)malloc(sizeof(LISTNODE));
startlist->number = 0;
startlist->nextPtr = NULL;
..

If you choose to criticise you choose your enemies


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Hier is natuurlijk genoeg informatie over te vinden. [google=pointer tutorial]

Je stukje defineert gewoon 2 types. LISTNODE is het type van de daadwerkelijk struct, en LISTNODEPTR is een pointer naar een LISTNODE.

Hoe je verder met pointers werkt moet je perfect zelf uit kunnen vinden, en anders moet je eens met je leraar gaan praten, want die hoort dit gewoon uit te leggen.

Deze gaat in ieder geval op slot.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Dit topic is gesloten.