Ludziska, help! Miałem na kolokwium ostatniej szansy do napisania w C deklarację typu struktury przechowującej zmienną double(klucz) i wskazanie na napis(lista jednokierunkowa). Do tego funkcja budująca listę wg niemalejących kluczy. Jej argumenty wywołania to wskazanie na wskaźnik wskazujący na początek listy, double a i napis dowolnej długości. Oto moje wypociny:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct struktura
{
double klucz;
char *napis;
struct struktura *next;
}struktura;
struktura **head;
int wstaw (**head,double a, char *napis)
{
struktura *wstaw, *akt, *pop;
if((wstaw=malloc(sizeof(struktura)))==NULL)
return 1;
wstaw->klucz = a;
if((wstaw->napis=malloc(sizeof(strlen(napis)+1)))==NULL)
{
free(wstaw);
return 1;
}
strcpy(wstaw->napis,napis);
if((*head)==NULL || head==NULL || (*head)->klucz>=a)
{
wstaw->next=*head;
*head=wstaw;
return 0;
}
pop=*head;
akt=pop->next;
while(akt!=NULL)
{
if(akt->klucz>=a)
break;
pop=akt;
akt=akt->next;
}
pop->next=wstaw;
return 0;
}
okazało się, że jednak nie jest idealnie i muszę jutro złożyć wyjaśnienia, teraz widzę, że to nieidealnie to brak typu wskaźnika w argumentach wywołania funkcji. Nic innego nie widzę. Czy mam rację?