Otherwise, I'm absolutely baffled that no error occured.
It depends on the compiler. Modern compilers should error out if you don't properly cast the literal:
int *ptr = (int*)12;
I wouldn't be surprised if Turbo C allowed it without the cast. However, it's generally a bad idea to set the address of pointer from a literal. The situations where you even can do it successfully are few and far between. Most of the time you'll just get a runtime error.
To add to what has been said, I see this most commonly when writing code for embedded hardware, in which some physical real world sensor or signaller is permanently linked to a specific memory address. For example, if you look in the manual for your embedded hardware and see that the signalling LED will be ON when a byte at memory location 0xBAADF00D is non-zero, you might expect to do something like this:
char* LEDState = (char*)0xBAADF00D;
and use that pointer to control the state of the LED.
If you need to do something like this, you will know! The manual for your hardware will make it very clear.
It was also used in the 1980s/1990s with MS-DOS 6.X and earlier to write directly to the screen, or to write directly to a port such as serial and parallel ports. Ahh, those were the good old days when Turbo C was king of the compilers.
I am writing a java program that needs to execute shell commands, so I wrote a function that would take the command to execute as a string (ie: "mkdir ~/Folder1") and execute that command with the shell. Here is the function:
Runtime run = Runtime.getRuntime();
Process pr = ...
Hi, as I was told that my code doesn’t scale well at all, I thought perhaps I’d try to get a better understanding of interfaces/abstract classes and classes and the relationship between them.
I don’t want at this stage work on a big separate project as I've already got plenty ...
Hi. I have a form with list box : lst_product, datagridview : grd_order and button: btn_addline. lst_product has a list of product ids selected from database (MS Acess 2013) , grd_order is by default empty except for 2 headers and btn_addline adds rows to grd_order.