Visual Studio 2008 Cverkettete Liste an den Schwanz Hinzufügen Verwirrung
Was ich nicht über diese verknüpften Liste verstehen, ist die an den Schwanz, indem zu in anderen Teil der if-Anweisung.
Wenn Kopf und Zahl die Speicheradresse von node_temp zugewiesen ist, zeigen beide auf den gleichen Speicherplatz.
In dem else Teil ist der Kopf tatsächlich immer noch auf den Schwanz. Es gibt etwas, das ich nicht erklären und nicht verstehen kann.
Ich hoffe, dass jemand besser für mich erklären kann.
static struct convert_temp
{
size_t cel;
size_t fah;
struct convert_temp *next;
} *head = NULL, *tail = NULL;
/** Add the new converted temperatures on the list */
void add(size_t cel, size_t fah)
{
struct convert_temp *node_temp = NULL; /* contain temp data */
node_temp = malloc(sizeof(*node_temp));
if(node_temp == NULL)
{
fprintf(stderr, "Cannot allocate memory [ %s ] : [ %d ]\n",
__FUNCTION__, __LINE__);
exit(0);
}
/* Assign data */
node_temp->cel = cel;
node_temp->fah = fah;
node_temp->next = NULL;
if(head == NULL)
{
/* The list is at the beginning */
head = node_temp; /* Head is the first node = same node */
tail = node_temp; /* Tail is also the last node = same node */
}
else
{
/* Append to the tail */
tail->next = node_temp;
/* Point the tail at the end */
tail = node_temp;
}
}
durchlaufen Sie es mit dem Debugger. –