1
我已經看過幾乎所有其他運行時檢查失敗#2問題,並且只有1個已將錯誤應用於相同的位置我有就像我的程序一樣。正如評論所說,錯誤發生在我結束main()之後。我不會分配超過數組的末尾,並且在main返回後不會更改任何內容。運行時檢查失敗#2 - 圍繞變量「素數」堆棧損壞
#include <iostream>
void findPrimes(bool primes[], const int arrSize);
int main(){
const int arrSize = 1000;
bool primes[arrSize];
for (int x = 0; x < arrSize; x++){
primes[x] = true;
}
findPrimes(primes, arrSize); //sets all non-prime numbers to false
for (int x = 0; x < arrSize; x++){ //I did not go past the size of the array.
if (primes[x]){
std::cout << x << std::endl;
}
}
return 0; //Error occurs after this point.
}
void findPrimes(bool primes[], const int arrSize){ //detects and changes non-prime numbers to false
int temp;
for (int x = 2; x < arrSize; x++){
temp = x + x;
for (int c = 0; c < arrSize; c++){
if (temp > arrSize){
break;
}
primes[temp] = false;
temp += x;
}
}
}
非常感謝你,當我看完它時,我徹底地吹過了那部分。它現在工作100%。 – Avionix