雖然這樣做時編譯器不顯示任何錯誤,但我在執行此操作時遇到了分段錯誤。 如果我提出非常基本的問題,請原諒我,因爲我不擅長編寫C語言及其很長一段時間。c - 分段故障存儲輸入並添加兩個指針
這裏是我的代碼:
#include<stdio.h>
#include<stdlib.h>
struct link_list {
int x;
int y;
struct link_list *next;
struct link_list *prev;
};
int inp_sum (int *x, int *y){
printf("Enter x:");
scanf("%d",&x);
printf("Enter y:");
scanf("%d",&y);
printf("%d+%d",x,y);
int z;
z=*x+*y;
return z;
}
void main(){
struct link_list *first_node;
first_node=malloc(sizeof(struct link_list));
first_node->next=0;
first_node->prev=0;
struct link_list *cur;
cur = malloc(sizeof(struct link_list));
while(inp_sum(&cur->x,&cur->y)<100){
cur->next=malloc(sizeof(struct link_list));
cur=cur->next;
cur->next=0;
cur->prev=0;
}
print_llist(first_node);
}
print_llist(struct link_list *root){
struct link_list *current;
current=malloc(sizeof(struct link_list));
current = root;
while (current != NULL) {
printf("%d\n", current->x);
current = current->next;
}
}
的,我想送x的指針,我想要做的就是創建一個鏈接列表節點和擴展的鏈接列表中,如果輸入總和小於100,是什麼,y(節點的成員)轉換爲一個函數,該函數在輸入並將輸入存儲到它們之後返回它們的總和。
但我認爲我在傳遞指針或添加指針時做錯了。
問候
就解決分割問題,但現在我不能添加指針,那裏有錯誤'無效的操作數爲二進制+(有「詮釋*」和「詮釋*」:你應該在你的主要功能有這些'你能幫我解決這個問題嗎 – pahnin 2012-08-06 04:46:35
從你的評論我假設你試着做'z = x + y;'這是添加到指針,這是無效的,你仍然應該解除引用它們:'z = * x + * y ;' – MByD 2012-08-06 04:48:17
我這樣做,第一,然後我得到這個輸出'輸入X:2 輸入y:3 37281808 + 37281812Enter X: ' – pahnin 2012-08-06 04:54:06