访谈问题:对于这种假设情况:如果程序的数据段从地址0开始。会发生什么?
考虑此问题的任何Linux操作系统。我理解basics of memory layout of a program,但无法找出该问题的确切答案。请列出可能性。
最佳答案
假设数据段从地址0开始。
int my_global;
void increment(int *ptr)
{
assert(ptr != NULL);
*ptr += 1;
}
void main()
{
increment(&my_global);
}
那么,如果
my_global
具有地址零,并且空指针也具有地址零怎么办?(从技术上讲,这不符合C标准,因为C标准要求全局变量的地址不等于
NULL
。)关于c - 数据段从位置0开始,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23834470/