执行文件时,内存布局中的文本段会发生什么? 现在执行的代码会出现在文本段吗?
int A;
int myarray[40] = {1,2,3,4};
int f1(int i)
{
int j = 5;
int *p;
j += i;
p = malloc(sizeof(int));
return j;
}
void main(){
int k;
k = 5;
A = f1(k+5);
}
答案 0 :(得分:4)
文本段包含所有程序的已编译机器代码,而不仅仅是当前在任何给定时刻运行的代码。除非你正在做一些不寻常的高级内容,比如覆盖或自修改代码,否则文本段是只读的,并且在程序运行时永远不会改变。