【发布时间】:2012-08-06 04:25:22
【问题描述】:
执行此操作时出现分段错误,但编译器没有显示任何错误。 如果我问的是非常基本的问题,请原谅我,因为我长期以来一直不擅长用 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;
}
}
我想要做的是创建一个链接列表节点并在输入总和小于 100 时扩展链接列表,因为我想将 x,y(节点的成员)的指针发送到返回它们的函数的函数在接受输入并将输入存储到它们之后求和。
但我认为在传递指针或添加指针时我做错了。
问候
【问题讨论】:
标签: c pointers segmentation-fault