问题标签 [storage-duration]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
74 浏览

c++ - 临时对象的存储持续时间是多少:自动、线程、静态或动态?

临时对象存储持续时间是多少:自动、线程、静态或动态?

我知道临时对象的生命周期在创建它的完整表达式处或之前结束,除非它绑定到引用,在这种情况下,它的生命周期会扩展到引用的生命周期,这为我们提供了一个下限临时对象的存储期限结束。

0 投票
5 回答
75 浏览

arrays - 空数组 NULL 的元素是否有价值?

我尝试了这个 Armstrong 程序,但发现自己被这个空数组的东西纠缠了。这个程序的工作一直困扰着我一段时间,但似乎仍然无法弄清楚这里有什么问题。是的,所以只是想问一个空或不完整数组的元素分配给什么值?它是 NULL 字符,即'\0'吗?我尝试在一个在线 C 编译器上检查它,这个断言似乎是正确的,但 GCC 告诉我们相反。我尝试了这种解决 Armstrong 问题的方法,这是我的代码:

我知道这个问题还有其他方法,但我正在寻找的是上述问题的答案。

0 投票
3 回答
80 浏览

c - 静态变量如何区分初始化和赋值

我知道静态变量在程序的整个运行时保持它们的值,即使在函数调用之间也是如此。给定下面的代码,考虑到 x 被声明为静态并初始化为零,打印的 x 的值是多少。using_static 函数如何在每次调用函数期间不将零分配给变量 x?

0 投票
1 回答
54 浏览

arrays - 指针函数返回数组地址,内存地址用循环或 ifs 清除

我正在尝试设置一个指针函数,该函数返回一个数组的第一个元素的地址,该数组本身存储在本地,然后在另一个函数上使用(在本例中为打印)内容。

当我通过静态语句引用它时,它可以正常工作,例如:

相反,当我继续尝试获得一个循环或做出决定时,它只是直截了当是行不通的。

PD:也出于某些邪恶的原因,它与 int 类型指针函数完美配合。

心理虐待的进一步证据

0 投票
3 回答
73 浏览

c - 我们是否总是必须为函数中的变量分配初始值?

numberOfDigits函数中,我没有为digits变量赋值,因为默认情况下它是 0。但是在变量的printf语句中digits它被打印为 168。

digits将零分配给变量后,我得到了预期的输出。所以,我的问题:是否有必要在用户定义函数中为变量赋值?如果是,为什么?

0 投票
3 回答
49 浏览

c - 添加两个对应的数组元素并返回结果数组

在以下代码中面临分段错误。任何人都可以帮我解决它吗?

输出应显示为

输入数组 1 和数组 2 的大小 >3

第一个数组>5 1 7

第二个数组> 2 4 2

结果 > 7 5 9

我的输出

输入数组 1 和数组 2 的大小 >3

第一个数组>5 1 7

第二个数组> 2 4 2

分段故障

0 投票
2 回答
67 浏览

c++ - 在 C++ 中返回一个数组而不获得悬空指针

我想从 C++ 中的函数返回一个数组。我做了这个简单的代码来尝试实现它。

它有效,但我收到此警告:

为什么如果我做std::vector<int> a[2]静态我解决了警告?

是否有另一种方法可以从函数返回数组而没有悬空指针警告?

谢谢你。

0 投票
1 回答
31 浏览

c - 尝试深度复制结构时出现分段错误

我有这段代码,其中有一个选区数组,我希望将整个数组深度复制到一个新数组中。现在我也是,看来我这样做是正确的,但我一直收到这段代码的分段错误。有人能够发现我做错了什么吗?

据我所知,出错的是,在释放旧数组中的堆内存时,这以某种方式释放了存储在新数组中的新堆内存。但我真的不确定这是怎么回事?

主程序

选区.c

0 投票
1 回答
69 浏览

c - for循环中的三元运算符

所以我有以下代码:

我已经知道程序的输出中会写什么,但我的问题是为什么?如果您编辑字符串并进行细微更改,则输出保持不变,即:

0 投票
1 回答
55 浏览

c++ - char* 是用“...”创建的,new 分别在堆栈和堆上吗?如果我的理解是对还是错,只想要一个简短的答案?

我在上面的评论中添加了我的问题。提前致谢。