組み込みシステムのコードを書いています。コンパイラはGCC派生物です。次のコードは正しいですか?
void *voidPointer = 0;
int (*functionPointer)(int a);
int testFunction(int a)
{
return(a+1);
}
void registerFunction(void *pvFunctionAddress)
{
voidPointer = pvFunctionAddress;
}
main()
{
...
registerFunction(testFunction);
functionPointer = voidPointer;
x = functionPointer(17);
...
}
これで、xの値は18になります。コンパイラはエラーを表示しませんが、これは正しいですか?または、スタック上のメモリを上書きしますか?
ありがとう。