Because you are trying to write 100 to memory location 0x0000000A, which is probably not allocated to your program. I.e
int *a = 10;
does not mean that the pointer "a" points to a place in memory with a value of 10. This means that it points to address 10 (0x0000000A) in memory. Then you want to write something to this address, but you do not have βrightsβ to do this, since it does not stand out
You can try the following:
int *a = malloc(sizeof(int));
*a = 100;
, . int, . 32- 32 , int 32 , ( ) 8 , 4. .