malloc,free实验
#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 failed\n");
return -1;
}
if(NULL == cp)
{
printf("malloc failed\n");
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("%d\n", *(p+3));
free (p);
free (cp);
return 0;
}