|
|
1
5
在C程序中引入字符串常量时,将创建一个具有静态存储持续时间的未命名、不可修改的对象。“静态存储持续时间”是指它在程序的整个生命周期内都有效。 因此,当您的代码中包含以下内容时:
为了节目的生命 . 通常,它们存储在文本段中,与程序代码本身的存储方式相同。 实际上传递给函数_name()的内容(可能在堆栈上)是 指针 到那些字符串常量。这就是GArray最终存储的内容—指向这些字符串常量的指针。 (请注意,用作数组初始化器的字符串是 不 字符串常量)。 |
|
|
2
0
有三件事是正确的: 要么: 1) g_array_append_val正在复制字符串。 或: 2) 一旦堆栈再次被覆盖,事情就会破裂。
尝试调用burn_堆栈(256);在函数名之后,查看是否继续工作。
|
|
|
Ben · 从文件逐行读取时的赋值 8 年前 |
|
|
yotamN · gjs中的异步代码在调用回调之前退出 8 年前 |
|
|
user8981137 · glib-2.0中的内存切片错误 8 年前 |
|
|
AnlamK · 涉及Glib2库的C程序编译问题? 12 年前 |