标签: activation-codes

GNU C中的激活记录(嵌套函数)

在GNU C中,结果为13.因为使用了静态链接.
否则,如果使用动态链接,则结果为16.

#include <stdio.h>

int h(){
    int x = 1;
    int g(int z){
        return z + x;     <------------------ P
    }
    int f(int y){
        int x = y + 1;
        return g(x * y);   
    }
    return f(3);
}

int main(){
    int a = h();
    printf("%d\n", a);
}
Run Code Online (Sandbox Code Playgroud)

在P点,激活记录是


z = 12


x = 4


y = 3


f和指向代码f的指针


g和代码g的指针


x = 1


h和指向代码h的指针


一个


main和指向代码main的指针


  1. 是对的吗?
    但是,如果函数g返回,它将如何发生?
    将删除激活g和激活变量z.
    然后在堆栈框架中,查看孔.

  2. 洞真的出现了吗?

  3. 并且根据内联块,在函数h中,
    变量x是最外层的块.(这意味着函数g'块嵌套在变量x的块中)下一个外部块是函数g,下一个函数f ...然后,函数f的静态链接指向函数g的帧指针吗?还是函数h的帧指针?那么函数g的静态链接怎么样?

c memory stack nested-function activation-codes

5
推荐指数
1
解决办法
1028
查看次数

为软件生成激活码的最佳方法是什么?

有什么方法可以随机生成一些不太可能随机生成的激活码来激活软件?我正在为Web应用程序制作一个自动执行系统.

我正在使用C#.

c# activation-codes

4
推荐指数
1
解决办法
4182
查看次数

标签 统计

activation-codes ×2

c ×1

c# ×1

memory ×1

nested-function ×1

stack ×1