首页 > 试题广场 >

以下哪个变量是分配在BSS段char s1[100];int

[单选题]
以下变量分配在BSS段的是()
char s1[100];
int s2 = 0;
static int s3 = 0;

int main() {
    char s4[100];
}
  • s1
  • s2
  • s3
  • s4
BSS段:通常是指用来存放程序中未初始化全局变量的一块内存区域;
数据段:通常是指用来存放程序中 已初始化  全局变量 的一块内存区域,static意味着在数据段中存放变量;
代码段:通常是指用来存放 程序执行代码 的一块内存区域;
堆:存放进程运行中被动态分配的内存段,它的大小并不固定,可动态扩张或缩减,这一块在程序运行前就已经确定了;
栈:栈又称堆栈, 存放程序的 局部变量 (不包括static声明的变量)。除此以外,在函数被调用时,栈用来传递参数和返回值。
发表于 2018-09-07 09:49:28 回复(4)
正确答案应该是abc
发表于 2020-10-04 13:23:19 回复(4)
bss: 未初始化全局变量
data:  已初始化全局变量
text: 代码段
heap: 堆
stack: 栈
发表于 2022-01-15 15:51:09 回复(0)
.bss:未初始化的静态数据(全局变量、静态局部变量、静态全局变量),程序退出的时候才释放;
.data:初始化的静态数据(全局变量、静态局部变量、静态全局变量),程序退出的时候才释放
栈stack:局部变量,函数退出时被释放,栈空间是从高地址往低地址延伸的。
堆heap:malloc、calloc、realloc,要不等到你调用free,要不等待程序退出才释放。
发表于 2022-06-04 12:07:13 回复(0)
BSS段:通常是指用来存放程序中未初始化全局变量的一块内存区域;
数据段:通常是指用来存放程序中 已初始化  全局变量 的一块内存区域,static意味着在数据段中存放变量;
代码段:通常是指用来存放 程序执行代码 的一块内存区域;
堆:存放进程运行中被动态分配的内存段,它的大小并不固定,可动态扩张或缩减,这一块在程序运行前就已经确定了;
栈:栈又称堆栈, 存放程序的 局部变量 (不包括static声明的变量)。除此以外,在函数被调用时,栈用来传递参数和返回值
发表于 2022-07-21 15:36:45 回复(0)
BSS段:通常是指用来存放程序中未初始化全局变量的一块内存区域;
数据段:通常是指用来存放程序中 已初始化  全局变量 的一块内存区域,static意味着在数据段中存放变量;
代码段:通常是指用来存放 程序执行代码 的一块内存区域;
堆:存放进程运行中被动态分配的内存段,它的大小并不固定,可动态扩张或缩减,这一块在程序运行前就已经确定了;
栈:栈又称堆栈, 存放程序的 局部变量 (不包括static声明的变量)。除此以外,在函数被调用时,栈用来传递参数和返回值

错的原因在于不知道BSS(blocked by started symbol)
发表于 2022-06-12 19:16:47 回复(0)
BSS段:通常是指用来存放程序中未初始化的全局变量的一块内存区域; 数据段:通常是指用来存放程序中 已初始化 的 全局变量 的一块内存区域,static意味着在数据段中存放变量; 代码段:通常是指用来存放 程序执行代码 的一块内存区域; 堆:存放进程运行中被动态分配的内存段,它的大小并不固定,可动态扩张或缩减,这一块在程序运行前就已经确定了; 栈:栈又称堆栈, 存放程序的 局部变量 (不包括static声明的变量)。除此以外,在函数被调用时,栈用来传递参数和返回值。
发表于 2021-11-15 09:55:03 回复(0)
未初始化的静态局部和静态全局变量都存在BSS段。 已初始化的静态局部和静态全局变量都存在DATA段。
编辑于 2024-04-02 01:16:39 回复(0)
未初始化及初始化为0的全局变量和静态变量存放在BSS段。ABC
发表于 2022-03-12 15:46:49 回复(0)
BSS段存放未初始化/初始化全为0的全局/静态变量
发表于 2023-04-13 00:47:00 回复(0)
正确答案的确应该是 a b c
因为 .bss 段存储的是 未定义的 / 定义值为 0 的  全局、静态变量。
发表于 2022-08-08 21:40:45 回复(0)
CSAPP中7.4节可重定位目标文件中有说明.bss用来存放未初始化的全局和静态C变量,以及所有初始化为0的全局和静态变量,所以正确答案不是ABC吗?还是说有另外一种BSS?
发表于 2021-05-16 15:23:38 回复(0)