私はObjective Cを初めて使用しています。詳しくは、過去3日間で目的cについて読んでいます。以下に述べる方法は、ErastosthenesアルゴリズムのSeiveのように特定の番号まで素数を生成することです。プログラムをデバッグしようとしていますが、コードが常に行に来るとき目的Cのデバッグが適切な手順を踏まずに
"if(product> size)"私はdebug.Itはに入ると間違って何が起こっているか知らない
次のステップは、すぐに "(;; J < =サイズJ ++、J = 2)のための"
にそれを取るでしょう製品がサイズよりも大きいときに中断します。しかし、条件が偽(製品>サイズ)の場合、なぜそれは行われません私はマックOS X 10.xの上のコードをデバッグするためのXcodeを使用していますcode.Iを再コンパイルする必要がありますか(配列[製品-1]!= 1)
場合
ある場合、次の条件O
@interfaceのSeiveofErastosthenes:NSObjectの {
int* array;
int size;
}
- (SeiveofEastosthenes *)initMe:(int)ssize; - (void)calculatePrimeNumbers; - (void)print;
@end
- (ボイド)calculatePrimeNumbers {int型の製品= 0。 int i = 0; int j;
memset(array,0,size);
array[0]=0;
array[1]=2;
for(i = 1 ; i < size ; i++)
{
if(array[i] == 1)
continue;
array[i] = i+1;
for(j = 2; j <= size ; j++)
{
product = (i+1) * j;
if(product > size)
{
break;
}
if(array[product-1] != 1)
{
array[product] == 1;
}
}
}
}
これはどのようにして、嫌なデバッガーを示していますか?あなたがコンパイラに問題があるように聞こえます。あなたは "デバッグ"ビルド設定を使用してビルドしていますか?そうでない場合は、デバッグ時に最適化を行わずにコードをコンパイルしてみてください。この予期しない動作を防止します。 –
その行は何もせず、おそらくコンパイラによって最適化されます。デバッガとは何の関係もありません。 – robottobor