PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
C_and_CPP
[问题] 为什么static 的变量不会被初始化
楼主:
liu2007
(è–¯)
2025-03-25 22:11:17
想问个小问题
在某一个版本之后
关于singleton的写法推荐如下
QByteArray& AlbumItem::placeholderBytes(){
static QByteArray bytes;
if (bytes.isNull()){
//....................
}
}
return bytes;
}
后来我想改用指标
QByteArray* AlbumItem::placeholderBytes(){
static QByteArray *bytes = nullptr;
if (bytes == nullptr){
//........................
}
}
return bytes;
}
本来我担心已经存在内存里的*bytes会被初始化为nullptr
造成非singleton的情况
并且导致有内存泄漏
还好测试一下并没有这样的情况发生
想请问是否是因为他检查如果该static 变量已存在于内存
就会跳过宣告这行程式码吗?
还是说实际上有其他动作,只是刚好结果符合我想要的呢?
作者:
nh60211as
2025-03-25 22:21:00
static variable 只会在第一次跑到的时候执行一次
https://en.cppreference.com/w/cpp/language/storage
_duration
#Static_blo
ck_variables楼下支援C++标准文件
作者:
Lipraxde
(Lipraxde)
2025-03-26 08:52:00
https://nrt32.medium.com/implementing-a-singleton-i
n-c-8e20e6c3c96d发现中文的了,该讲的差不多都有讲到XD
https://www.cnblogs.com/liyuan989/p/4264889.html
作者:
bbbing
(无)
2025-03-26 10:07:00
function本地的static要能保留沿用,要每次初始化那static就没意义了吧,反之我以为就是用static的目的
作者:
descent
(“雄辩是银,沉默是金”)
2025-03-26 16:01:00
c++ runtime 有一部份在处理 local static object让 static object 只初始化一次大概是要让 object 的行为和 c static 变量有一样的行为
作者:
Dracarys
(MayShowGunMore)
2025-03-26 19:00:00
会sync但可以用-fno-threadsafe-statics关掉,然后Itanium C++ ABI有规定api让compiler生code来呼叫runtime来达成这件事
作者:
wulouise
(在线上!=在电脑前)
2025-03-27 00:49:00
不能理解你的问题,初始化完他就是nullptr, 然后qt有smart pointer所以本来就不会leak吧问题是你改成static ptr谁要负责帮你new?没有data race?你的if 里面要做什么,这个function要做什么描述一下
继续阅读
[问题] find vector内元素 却完全没作用
handofn0xus
Re: [分享] 计算π到小数点下一亿位
if4
[问题] visual studio旧专案引用新传案编译错误
sohumi
Re: 有关超长整数... ?
lc85301
Re: 有关超长整数... ?
saxontai
Re: 有关超长整数... ?
if4
[讨论] 网络新闻分享
freexq
[问题] ofstream 总是写成binary file
evilkiss
[问题] 有完整程式码的资料结构用书推荐
amamoimi
Re: [问题] 想问有关wxWidgets的问题...
closer76
Links
booklink
Contact Us: admin [ a t ] ucptt.com