誰かがプログラムの決定論的なバグの例を教えてもらえますか?
ありがとう。
void bug()
{
int *ptr = 0;
ptr[0] = 10;
}
ヌル ポインターへのアクセス。常に起こります。
ここに決定論的なバグがあります:
void myStrCpy (char *s, char *d) {
for (int i = 0; i < strlen (s) - 1; i++)
*d++ = s[i];
*d = '\0';
}
文字列の最後の文字をコピーするのを忘れているのは明らかです。つまり、コピーは 1 文字少なくなります。
割り当てステートメントを使用する場合は、次を使用できます。
#include <stdio.h>
int main (void) {
short x = 2094967295;
printf ("%d\n", x);
return 0;
}
-22017
一貫して出力します。
または、SOに関する最近の質問からの小さなスニペットでも:
int x = 2^5; // set x to 32 for bitmasking later.
ユーザーエラーではありますが、これはバグです。
あるいは:
int *x = malloc (4);
移植可能であるはずのアプリケーションで。