小编Jay*_*tel的帖子

Inconsistent "possible lossy conversion from int to byte" compile-time error

Examine the following code snippets:

Snippet #1

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)

Snippet #2

int a=20;
int b=30;
byte h1=70;
byte c= (a>b)? 20:h1;
Run Code Online (Sandbox Code Playgroud)

Snippet #3

int a=20;
int b=30;
byte h1=70;
byte h2=89;
byte c= (a>b)? h1:h2;
Run Code Online (Sandbox Code Playgroud)

Snippet #4

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 …

java compiler-errors language-specifications

30
推荐指数
2
解决办法
1295
查看次数

Malloc,Realloc,免费

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个字节都将被释放还是其他东西?

c malloc free realloc dynamic-memory-allocation

1
推荐指数
1
解决办法
278
查看次数