在这个问题,有人建议意见,我应该不会投的结果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)
为什么会这样呢?
我有一些带有malloc语句的C代码,我想与一些C++代码合并.
我想知道什么时候以及为什么要在C++中使用malloc neccessary进行类型转换?
例如:
char *str = (char*)malloc(strlen(argv[1]) * sizeof(char));
Run Code Online (Sandbox Code Playgroud) 关于以下代码片段的问题
char *p = malloc(10);
Run Code Online (Sandbox Code Playgroud)
当我编译它gcc的任何-std=,这并编译好.
但是使用g ++,-std=这会产生错误:
w.c:4:21: error: invalid conversion from ‘void*’ to ‘char*’ [-fpermissive]
char *p = malloc(10);
Run Code Online (Sandbox Code Playgroud)
为什么行为不同?我认为用C编译的所有行都应该用C++编译器编译.这有什么标准要求吗?