因为没注意到'三目操作符'优先级比'+'低,漏了一个括号,造成内存越界,调试还看不出来,幸好有printf大法。
#include#include #include //#include void Initialize_bit(char *arr,int n); void Clear_bit(char *arr,int n); int Test_bit(char *arr,int n); int main(){ //srand((unsigned int)time(0)*10000); int number_max=0; int count_prime_number=0; //for(;number_max<9999;number_max=rand()%INT_MAX); number_max=1000; printf("number_max=%dn",number_max); int *numbers=(int *)calloc(number_max+1,sizeof(int)); char *numbers_tag=(char *)calloc((number_max+1)/CHAR_BIT+((number_max+1)%CHAR_BIT?1:0),sizeof(char)); for(int i=0;i >n%CHAR_BIT&1; }



