我正在嘗試編寫一個程序,它可以在表達式中找到所有")"
並將它們放入鏈接列表中,並始終在列表的開頭添加。問題是,當我嘗試將新元素放入列表中時,程序停止工作。無法將元素插入到鏈接列表
與樣本用戶輸入865)987
:
#include <stdio.h>
#include <stdlib.h>
typedef struct element {
char data;
struct element *next;
} ELEMENT;
int main(void)
{
ELEMENT *first = NULL;
ELEMENT *new_a;
char input[30];
int x=0;
printf("Input expression: ");
scanf("%s", &input);
while(input[x]!='\0'){
if (input[x]==')'){
printf("%c", input[x]); //This works just fine.
new_a->data = input[x]; //Here, the program stops working.
new_a->next = first;
first = new_a;
}
x++;
}
}
我在做什麼錯?
非常感謝你,現在它似乎是工作!只是一個小問題:「first = &new_a;」,「不兼容指針類型的賦值」有一條新警告。你碰巧知道這是爲什麼? – DerekT
@DerekT **或者**在'ELEMENT new_a;'**(注意缺少星號!)**並使用'first = &new_a; ** **或**在堆棧上分配' malloc'並使用'first = new_a;'。或者是別的什麼?如果您的問題未解決,請*添加錯誤消息*。 – Downvoter