Examine the following code snippets:
int a=20;
int b=30;
byte c= (a>b)? 20:30;
Run Code Online (Sandbox Code Playgroud)
Error:
incompatible types: possible lossy conversion from int to byte
byte c= (a>b)? 20:30;
Run Code Online (Sandbox Code Playgroud)
int a=20;
int b=30;
byte h1=70;
byte c= (a>b)? 20:h1;
Run Code Online (Sandbox Code Playgroud)
int a=20;
int b=30;
byte h1=70;
byte h2=89;
byte c= (a>b)? h1:h2;
Run Code Online (Sandbox Code Playgroud)
byte c= (true)? 20:30;
Run Code Online (Sandbox Code Playgroud)
All of these compile fine except for Snippet #1. How is this behavior justified? If Snippet #1 produces the …
int *p=malloc(20);
Run Code Online (Sandbox Code Playgroud)
现在Heap将分配20个字节的内存.并将第一个字节的地址返回到指针p.(假设没有返回NULL指针).
现在我这样做,
int *q=realloc(p, 40);
Run Code Online (Sandbox Code Playgroud)
现在他们有以下可能性:
1].q = P
2].!Q = P
3].Q = NULL
忘了可能性2和3.
现在我写道:
free(p);
Run Code Online (Sandbox Code Playgroud)
现在会发生什么?
前20个字节是否会被释放,休息仍然会被分配,或者所有40个字节都将被释放还是其他东西?