首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

代码重定位问题!!!

代码重定位问题!!!

本帖最后由 乌月明星稀 于 2013-9-25 23:17 编辑

#include "stdio.h"

void a()
{
        printf("This is test!\n");
}

char CodeArr[100];
void main()
{
    char temp;
    char *Pcopy=(char*)a;
    for(temp=0;temp<100;temp++)
    {
            CodeArr[temp]=Pcopy[temp];//代码拷贝
    }
    ((void(*)(void))CodeArr)();    //强制转换为void (*)(void)函数类型
}

我的想法是:将代码a拷贝到CodeArr中,然后用CodeArr强制转换为函数指针,执行到拷贝后的函数中去,但实际会导致整个main进程死掉。

求高手指点,如何用C编译可重定向代码。环境是Windows的C编译器
返回列表