Q
결정적 버그 예
2
A
답변
2
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);
.
확정적 인 버그는 쉽습니다. 항상 발생합니다! 그것은 하드 (경쟁 조건 등)가 아닌 결정적이지 않은 것들입니다. – Gabe