求大神指点。结构体全局变量与scanf解决办法
求大神指点。。。结构体全局变量与scanf
#include<stdio.h>
struct code
{
int i;
char s;
};
struct code *k;
main()
{
scanf("%d",&k->i);
scanf(" %c",&k->s);
printf("%d,%c\n",k->i,k->s);
}
如题,上面这个程序一运行就出错,,,但是把struct code *k;弄到main里面又可以了。。
为什么啊???
求大神、、、
------解决方案--------------------
需要先分配空间才行:
------解决方案--------------------
当然也要分配空间,只是放到函数里面,可能是栈区,表面上程序没有崩溃,实际还是有问题,属于行为不可定义。
#include<stdio.h>
struct code
{
int i;
char s;
};
struct code *k;
main()
{
scanf("%d",&k->i);
scanf(" %c",&k->s);
printf("%d,%c\n",k->i,k->s);
}
如题,上面这个程序一运行就出错,,,但是把struct code *k;弄到main里面又可以了。。
为什么啊???
求大神、、、
------解决方案--------------------
需要先分配空间才行:
struct code *k = (struct code*)malloc(sizeof(struct code));
------解决方案--------------------
当然也要分配空间,只是放到函数里面,可能是栈区,表面上程序没有崩溃,实际还是有问题,属于行为不可定义。