非常に大きな配列にデータを格納するには、「longlong」c型を使用する必要があります。私のコードは大きいので、同じ問題を抱えているこのかなり単純なコードを作成しました。したがって、ループ内で222回繰り返され、ループが50%(配列に値を格納する場合)および100%(終了時に)に達すると出力されます。
ただし、常にエラーが発生します。たとえば、この場合、配列の50%はインデックス222/2 = 111を出力し、100%はインデックス222を出力する必要があります。ただし、常に100と200を出力します。
これは私が使用している単純なコードです。以下は結果です。
#include<stdio.h>
#define S 222
int main(void){
char *text = calloc(S, sizeof(char));
unsigned long long i;
for(i=0; i<=S; i++){
text[i] = 'a';
if(i == (S/100)*50)) {printf("50percent\t and index : %llud index should be 111" ,i );}
if(i == ((S/100)*100)){printf("100percent\t and index : %llud index should be 222", i);}
}
return 0;
}
それで、私は何か間違ったことをしているのか、それともその問題に対する論理的な説明があるのかと思っていました。
ありがとうございました。