Skocz do zawartości


Close Open
Close Open
Zdjęcie
- - - - -

funkcja wyświetlająca zawartość stosu


  • Please log in to reply
1 reply to this topic

#1 kasztaniak

kasztaniak

    Adept

  • Forumowicze
  • Pip
  • 17 Postów:
  • Płeć:Kobieta

Napisany 07 January 2010 - 16:02 PM

Mam do napisania w języku C funkcję wyświetlająca zawartość stosu na standardowe wyjście

Stworzyłem strukturę:
struct stack {
void *mem;
int el_size;
int stack_ptr;
int stack_max;
};
typedef struct stack STOS;


* Strutura STOS
* mem - wskaznik na poczatek pamieci zawierajacej stos
* el_size - rozmiar elementu na stosie
* stack_ptr - wskaznik stosu (aktualny element)
* stack_max - maksymalny wskaznik stosu


stack_ptr zwiększa się zawsze o jeden kiedy na stosie umieszczamy liczbę

funcja wyświetlająca zawartość stosu wygląda więc tak:
int print(STOS *stack){
int i;
for(i=0;i<(stack->stack_ptr);i++) {	//pętla która przeleci po wszystkich elementach stosy//
printf("%d\n", *(stack->mem+i*stack->el_size)); }
  }

Niestety taka funcja nie kompiluje się:
w 4 liincje definicji tej funkcji kompilator wywala:
warning: dereferencing ‘void *’ pointer
error: invalid use of void expression

Bedę serdecznie zobowiązany za pomoc

#2 bolq123

bolq123

    Uczestnik

  • Forumowicze
  • PipPipPipPip
  • 158 Postów:

Napisany 12 January 2010 - 18:43 PM

a to nie powinna być przypadkiem struktura odwołująca się sama do siebie ? ja myśle, że to może być coś takiego:

typedef struct stack {
struct stack *mem;
int el_size;
}STOS;

int wypisz(STOS *lista)
{
while(lista != NULL){
printf("%d",lista->el_size);
lista=lista->mem;
}

napisałem z głowy więc mogą być błędy




0 Użytkowników czyta ten temat

0 użytkowników, 0 gości, 0 anonimowych użytkowników