[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
Re: ヒープ上に作成したサ ブルーチンの呼び出し
久門です。
From: Tetsuya SUZUKI <tsuzuki@246.ne.jp>
Subject: [palm-tech-ml 89] ヒープ上に作成したサブルーチンの呼び出し
Date: Wed, 04 Oct 2000 21:58:54 +0900
> こちらのMLに登録させていただいたばかりの鈴木です。
> 登録早々質問なのですが、パームパイロットでは動的に
> 確保したメモリ領域にサブルーチンを生成して、そこに制御を
> 移すことは可能でしょうか。C言語で書くと次のような感じです。
>
> int main(){
> void (*funcP)(); /*関数へのポインタ*/
> char *p = (char*)malloc(1024);/*メモリを確保*/
>
> 確保したメモリに関数を出力する手続き
>
> funcP = (void (*)())p;
> (*funcP)(); /*出力した関数を呼び出す*/
> }
動くと思いますよ。
少なくとも、次のプログラムはgdbの下のstepiで動作は確認できました。
{
Int *ptr = MemPtrNew(8);
*ptr = 0x4e75;
((void (*)(void))ptr)();
//0x4e75は rts 命令です。
}
ただ、呼び出されるコードでは、staticへのアクセスなどにかなりの注意が必
要 (と言うか、あきらめた方が良い) でしょうね。
ほぼ、DAと同じ制約かな。