|
10鱼币
本帖最后由 rt3 于 2020-10-19 14:58 编辑
下面这个代码
用 一个 自定义函数 把 一个 数值 赋值给 数据结构变量中的 成员,
然后 再用 另一个 自定义 函数 把 这个 成员的 值 打印出来,
编译成功,但是 执行时 会 Segmentation fault,谢谢
- #include <stdio.h>
- #include <stdlib.h>
- struct numbers{
- struct numbers *Previous;
- int value;
- struct numbers *Next;
- };
- int setvalue(struct numbers** a){
- struct numbers* b=malloc(sizeof(struct numbers));
- a=&b;
- if(b==NULL)return 1;
- printf("set value:");
- scanf("%d",&(b->value));
- printf("b->value==%d",b->value);
- return 0;
- }//将 int 型 数值 赋值给 b->value ,使 指针 a 指向 b
- void printnum(struct numbers** a){
- struct numbers* b=*a;
- printf("b->value:%d.\n",b->value);
- }//输出 a 所指向的 b 的 成员 value 的 值
- int main(){
- struct numbers** a=NULL;
- setvalue(a);
- printnum(a);
- free(*a);
- return 0;
- }
复制代码
- #include <stdio.h>
- #include <stdlib.h>
- struct numbers{
- struct numbers *Previous;
- int value;
- struct numbers *Next;
- };
- int setvalue(struct numbers** a){
- struct numbers* b=(struct numbers *)malloc(sizeof(struct numbers));
- //这里该一下
- *a=b;
- if(b==NULL)return 1;
- printf("set value:");
- scanf("%d",&(b->value));
- printf("b->value==%d",b->value);
- return 0;
- }//将 int 型 数值 赋值给 b->value ,使 指针 a 指向 b
- void printnum(struct numbers** a){
- struct numbers* b=*a;
- printf("b->value:%d.\n",b->value);
- }//输出 a 所指向的 b 的 成员 value 的 值
- int main(){
- //这里改一下
- struct numbers* a=NULL;
- setvalue(&a);
- printnum(&a);
- free(a);
- return 0;
- }
复制代码
|
|