Guten Tag,
vor einigen Tagen habe ich ein umfangreicheres Programm geschrieben. Dieses funktioniert auf den meisten Geräten einwandfrei, einige Geräte geben jedoch einen Segmentation fault aus (mit gdb ausgeführt). Und zwar befindet sich der Fehler in folgender Funktion in Zeile 15:
Übergeben wird mit *head der erste Node einer Linked List. *newNode ist ein neuer Node, dessen Werte bereits eine Funktion vorher deklariert wurden. Die Funktion appendFigure soll also nichts anderes tun, als zu einer gegebenen Liste einen schon deklarierten Node hinzuzufügen (wobei der effektiv erste Node sich an zweiter Stelle befindet, der head bleibt leer). Interessant ist auch, dass bei den Geräten, bei denen es nicht klappt, die erste if-Abfrage (Zeile 4) nie erfüllt wird.
Weiß jemand vielleicht, wo das Problem liegt? Ich suche schon ewig herum, zumal es auf den meisten Computern einwandfrei funktioniert.
Mit freundlichen Grüßen,
A.
vor einigen Tagen habe ich ein umfangreicheres Programm geschrieben. Dieses funktioniert auf den meisten Geräten einwandfrei, einige Geräte geben jedoch einen Segmentation fault aus (mit gdb ausgeführt). Und zwar befindet sich der Fehler in folgender Funktion in Zeile 15:
Code:
void appendFigure(struct node *head, struct node *newNode)
{
if(head->next == NULL)
{
// Add to the beginning
head->next = newNode;
}
else
{
// Add to the end
struct node *current = head;
while(1)
{
if(current->next == NULL)
{
current->next = newNode;
break;
}
current = current->next;
}
}
}
Übergeben wird mit *head der erste Node einer Linked List. *newNode ist ein neuer Node, dessen Werte bereits eine Funktion vorher deklariert wurden. Die Funktion appendFigure soll also nichts anderes tun, als zu einer gegebenen Liste einen schon deklarierten Node hinzuzufügen (wobei der effektiv erste Node sich an zweiter Stelle befindet, der head bleibt leer). Interessant ist auch, dass bei den Geräten, bei denen es nicht klappt, die erste if-Abfrage (Zeile 4) nie erfüllt wird.
Weiß jemand vielleicht, wo das Problem liegt? Ich suche schon ewig herum, zumal es auf den meisten Computern einwandfrei funktioniert.
Mit freundlichen Grüßen,
A.