void primeFinder (int start,int final);
int *prime_list=(int*)malloc(1*sizeof(int));
int element_number=0;
void primeFinder (int start,int final){
/*if (start<1){
return EXIT_FAILURE;
}*/
int i,j;
for(i=start;i<=final;i++){
for (j=start;j<=i;j++){
if(i%j==0){
break;
}
}
if(i==j){
element_number++;
prime_list=(int*)realloc(prime_list,element_number*sizeof(int));
}
}
}
它给出以下错误。关于编译器吗?我正在使用“ VS 2017开发人员命令提示符”
error C2099: initializer is not a constant
答案 0 :(得分:1)
这似乎是尝试以prime_list
进行首字母缩写化的一种尝试。
int *prime_list=(int*)malloc(1*sizeof(int));
但是,使用malloc是对函数的调用,只能在符文时执行,因此必须是函数的一部分。
这就是编译器告诉你的。
如果要使用已分配的(且非常小的)初始缓冲区进行初始化,则可能需要事先使用一些初始化函数。
答案 1 :(得分:0)