代码语言:javascript复制
#include <stdio.h>
#include <stdlib.h>
int main()
{
char a = 0;
//int * p = (int * ) malloc (4 * sizeof(int));
int * p = (int * ) malloc (4);
char * cp = (char * ) malloc (4 * sizeof(char));
a = 1;
a = (char)(~0);
a = 0;
a |= (~((~0)<<5) <<3);
//step-by-step program
a = 0;
a = (char)(~0);
a = a << 5;
a = ~a;
a = a << 3;
if(NULL == p)
{
printf("malloc failedn");
return -1;
}
if(NULL == cp)
{
printf("malloc failedn");
return -1;
}
*(p 0) = 1;
*(p 1) = 3;
*(p 2) = 5;
*(p 3) = 4;
*(cp 0) = 1;
*(cp 1) = 3;
*(cp 2) = 5;
*(cp 3) = 4;
//*(p 4) = 6; //编译通过,但无法运行。
printf("%dn", *(p 3));
free (p);
free (cp);
return 0;
}