Ich bin sehr neu in der Verwendung einer struct
, so dass einige der Code, den ich gerade zeige, möglicherweise inkorrekt sein, und das kann die Ursache sein Fehler, den ich bekomme. Ich schreibe Code, der versucht, Stapel mit Hilfe einer struct
nachzuahmen. Ich versuche gerade, eine pushInt()
Funktion zu machen, die einen Zeiger zu einem Stapel struct
und etwas int
Wert nimmt. Dies ist der Code, den ich für die puchInt()
Funktion haben:Struct Segmentierung Fehler: 11. Nicht möglich, Werte in einer Struktur neu initialisiert zuerst Null zu initialisieren
Stack *pushInt(Stack *stack, int value)
{
stack->intTop = TRUE;
stack->data.intValue = value;
stack->next = NULL;
return stack;
} // end pushInt
Dies ist der Code, den ich die stact struct
zu definieren, verwenden. Es ist eine selbstverweis Struktur wie ein likedList zu handeln:
struct StackNode
{
int intTop;
union {
int intValue;
char stringValue[MAX_STRING_LENGTH];
} data;
struct StackNode *next;
};
Dies ist die wichtigste Funktion, die ich die Funktionalität des Codes zu testen laufen:
int main()
{
Stack *theStack = NULL;
//getInteger function just gets user input
int pushValue = getInteger("value to push onto stack: ");
theStack = pushInt(theStack, pushValue);
}
Sie müssen Speicher für Ihren Knoten reservieren. –
@RetiredNinja würde dies mit malloc in der 'pushInt()' Funktion getan werden, bevor ich die Variablen neu zuweisen? – theGreatOne