错误:在文件范围内可变地修改了“ d” [英] error : variably modified 'd' at file scope

查看:47
本文介绍了错误:在文件范围内可变地修改了“ d”的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

代码1:-

int size;

struct demo
{
    int a;
};

int main()
{
    scanf("%d",&size);
    struct demo d[size];
    return 0;
}

此代码可以正常工作。

代码2:-

int size;

struct demo
{
    int a;
};

int main()
{
    scanf("%d",&size);
    return 0;
}

struct demo d[size];

此代码显示错误:-

error : variably modified 'd' at file scope

上可变地修改了'd' 代码2 中出现错误,而代码1 运行正常吗?

Why such error is coming in Code 2 whereas Code 1 runs fine?

推荐答案

在代码2中,您的结构数组驻留在数据段中,根据定义

In code 2, your array of structs resides in data segment which is by definition


数据段是程序的虚拟地址空间
的一部分,其中包含由程序员初始化的
全局变量和静态变量。 该段的大小由程序员在编译或汇编程序
之前在其中放置的值
决定,并且在运行时不会更改。

这篇关于错误:在文件范围内可变地修改了“ d”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆