在这个问题,有人建议意见,我应该不会投的结果malloc,即
int *sieve = malloc(sizeof(int) * length);
Run Code Online (Sandbox Code Playgroud)
而不是:
int *sieve = (int *) malloc(sizeof(int) * length);
Run Code Online (Sandbox Code Playgroud)
为什么会这样呢?
我们都知道解除引用空指针或指向未分配内存的指针会调用未定义的行为.
但是在传递给表达式时使用的规则是什么sizeof?
例如:
int *ptr = 0;
int size = sizeof(*ptr);
Run Code Online (Sandbox Code Playgroud)
这也未定义吗?