Tag: 编程语言

具有线程的递归Fib,分段错误?

任何想法为什么它适用于0,1,2,3,4等值,并且像> 15这样的值的seg故障? #include #include #include void *fib(void *fibToFind); main(){ pthread_t mainthread; long fibToFind = 15; long finalFib; pthread_create(&mainthread,NULL,fib,(void*) fibToFind); pthread_join(mainthread,(void*)&finalFib); printf(“The number is: %d\n”,finalFib); } void *fib(void *fibToFind){ long retval; long newFibToFind = ((long)fibToFind); long returnMinusOne; long returnMinustwo; pthread_t minusone; pthread_t minustwo; if(newFibToFind == 0 || newFibToFind == 1) return newFibToFind; else{ long newFibToFind1 = […]

无意中使用=而不是==

看起来 if (x=y) { …. } 代替 if (x==y) { … } 是许多邪恶的根源。 为什么并非所有编译器都将其标记为错误而不是可配置警告? 我有兴趣找出构造if (x=y)有用的情况。