I think the compiler is just trying to tell you that you're about to do something bad (i.e. assigning a number to a pointer). You can easily cast away this error, but you'd crash very soon after running the program, since you have no idea who owns the memory at address 0x100579C.

Then you try to delete a pointer which you didn't new. If the *pointer = 1; didn't kill you, the delete surely would.