首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

求大神指导。结构体全局变量与scanf

2013-09-28 
求大神指点。。。结构体全局变量与scanf#includestdio.hstruct code{int ichar s}struct code *kmain()

求大神指点。。。结构体全局变量与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里面又可以了。。
为什么啊???
求大神、、、 全局变量 scanf 结构体
[解决办法]
需要先分配空间才行:


struct code *k = (struct code*)malloc(sizeof(struct code));


引用:
#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里面又可以了。。
为什么啊???
求大神、、、

[解决办法]
引用:
Quote: 引用:

需要先分配空间才行:

struct code *k = (struct code*)malloc(sizeof(struct code));


Quote: 引用:

#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里面又可以了。。
为什么啊???
求大神、、、
呃,,,定义在main里面就不用分配空间了吗?

当然也要分配空间,只是放到函数里面,可能是栈区,表面上程序没有崩溃,实际还是有问题,属于行为不可定义。

热点排行