如果要獲取內(nèi)存地址,你上面那種函數(shù)獲取方法是錯(cuò)誤的.函數(shù)中int *a僅僅是主函數(shù)變量ff的一個(gè)副本,ff當(dāng)初沒有具體指明地址,傳遞給a也是不確定地址,a分配完畢,只是修改a自身指向,并不修改ff指向.所以用下面方法進(jìn)行修改,采用返回地址方法
創(chuàng)新互聯(lián)建站專注于企業(yè)成都營(yíng)銷網(wǎng)站建設(shè)、網(wǎng)站重做改版、仁化網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5、商城網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為仁化等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
#include stdio.h //包含頭文件
#include stdlib.h
int *array1(int x)//使用返回指針能正確分配內(nèi)存地址
{
int *a;
a=(int*)malloc(sizeof(int)*x);
if(a==NULL)
exit(0);
for(int i=0;ix;i++)
*(a+i)=0;
return a;
}
void main()
{
int *array1(int x);//函數(shù)聲明與函數(shù)定義相一致
int *ff;
int sdof;//定義sdof
sdof=8;
ff = array1(sdof);
for(int i=0;isdof;i++)
printf("%d\n",*(ff+i));
}
BOOL VirtualProtect(
LPVOID lpAddress, // address of region of committed pages
DWORD dwSize, // size of the region
DWORD flNewProtect, // desired access protection
PDWORD lpflOldProtect
// address of variable to get old protection
);
或者WriteProcessMemory(...
但是如果你發(fā)生了內(nèi)存不能執(zhí)行的話 你可以用這個(gè)API改變內(nèi)存的屬性
更直接得 你可以使用VirtualAlloc 它申請(qǐng)的內(nèi)存可以直接設(shè)置讀寫執(zhí)行.
#include cstdlib
#include windows.h
int main()
{
MessageBox(NULL, "我不是真的調(diào)用.", NULL, MB_OK);
char szFunText[] = {0x6A, 0x00, 0x6A, 0x00, 0x6A, 0x00, 0x6A, 0x00, 0xB8, 0x8A, 0x05, 0xD5, 0x77, 0xFF, 0xD0, 0xC3};
//PAGE_EXECUTE_READWRITE 可讀可寫可執(zhí)行
PVOID pMem = VirtualAlloc(NULL, 1024, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
memcpy(pMem, szFunText, sizeof(szFunText));
((void(*)())pMem)();
VirtualFree(pMem, 1024, MEM_RELEASE);
return 0;
}
C語(yǔ)言可以通過宏,在你需要的位置宏展開出一個(gè)新的函數(shù)。
例如:
#define XXX(funcname) \
int funcname (int arg1, int arg2) \
{ return arg1 + arg2; }
但這也是編譯期就決定好了的,也不能實(shí)現(xiàn)運(yùn)行期動(dòng)態(tài)創(chuàng)建。
網(wǎng)頁(yè)題目:c語(yǔ)言可以動(dòng)態(tài)創(chuàng)建函數(shù) c++動(dòng)態(tài)創(chuàng)建類
網(wǎng)頁(yè)路徑:http://chinadenli.net/article2/hpegoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、App開發(fā)、靜態(tài)網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)公司、品牌網(wǎng)站制作、
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
網(wǎng)頁(yè)設(shè)計(jì)公司知識(shí)