Board logo

标题: 代码重定位问题!!! [打印本页]

作者: reporter    时间: 2013-9-26 10:26     标题: 代码重定位问题!!!

本帖最后由 乌月明星稀 于 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编译器




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0