执行文件时内存布局中的文本段会发生什么?

时间:2011-04-21 15:19:42

标签: c memory code-layout

执行文件时,内存布局中的文本段会发生什么? 现在执行的代码会出现在文本段吗?

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);
}

1 个答案:

答案 0 :(得分:4)

文本段包含所有程序的已编译机器代码,而不仅仅是当前在任何给定时刻运行的代码。除非你正在做一些不寻常的高级内容,比如覆盖或自修改代码,否则文本段是只读的,并且在程序运行时永远不会改变。