このようにvoidポインターを割り当てると、ポインターを解放しようとしているときにアクセス違反が発生します。
int Foo(void* ptr)
{
*((void**)ptr) = malloc(25);
((char*)ptr)[0] = 'A';
free(ptr); //crashes access violation
}
関数にvoidポインターを渡し、関数の外でそれを解放しようとすると、同じことが起こります。
int main()
{
void* ptr;
Foo(&ptr);
printf("%s \n", (char*)&ptr); //works
free(ptr); //crashes access violation
retun 0;
}
このポインタを解放する方法の手がかりはありますか?