이 개념과 관련하여 다양한 질문이 있지만 이것들은 모두 충돌을 일으키는 것으로 보이며 많은 응답이 충돌을 유발하도록 설계되었습니다. 따라서 내가 설정 한 과제는 전체 대상 OS 또는 그 자체가 즉시 명백하지 않은 방식으로 충돌하는 그럴듯한 코드를 작성하는 것입니다. ( '즉각적으로 명백한'것으로 간주되는 것은 주관적이지만 도전은 여전히 합리적이라는 것을 알고 있습니다.)
우승자는 5 일 후에 가장 많은 표를 얻은 답변입니다.
이 개념과 관련하여 다양한 질문이 있지만 이것들은 모두 충돌을 일으키는 것으로 보이며 많은 응답이 충돌을 유발하도록 설계되었습니다. 따라서 내가 설정 한 과제는 전체 대상 OS 또는 그 자체가 즉시 명백하지 않은 방식으로 충돌하는 그럴듯한 코드를 작성하는 것입니다. ( '즉각적으로 명백한'것으로 간주되는 것은 주관적이지만 도전은 여전히 합리적이라는 것을 알고 있습니다.)
우승자는 5 일 후에 가장 많은 표를 얻은 답변입니다.
답변:
/* Fork child process, wait 5 seconds and kill it */
pid_t pid = fork();
if(pid =! 0) {
/* Parent */
sleep(5);
kill(pid, 11);
}
else {
/* Child process. Would contain some code */
}
변경함으로써 !=
로 =!
, 무고한 비교 과제로 설정되어 있습니다. 그리고 pid 1 is init
이고 killing init
이 커널 패닉을 유발 한다는 것을 감안할 때 이것은 루트로 실행하려는 코드가 아닙니다 :)
SIGSEGV
숫자 코드를 사용하여 숨길 것 입니다. 결국, 그것은 실수 일 수 있습니다.
0에서 255까지의 모든 바이트 값으로 바이트 목록을 초기화합시다.
List<byte> bytes = new List<byte>();
for (byte i = 0; i <= 255; i++)
{
bytes.Add(i);
}
메모리가 부족합니까? 256 바이트 이상이 설치되어 있음을 분명히 기억합니다 ...
스포일러 :
바이트는 항상 255보다 작거나 같습니다. 추가는 255에서 0으로 줄 바꿈됩니다.
str.toLowerCase().split('').map(function(c) { return c < 'a' || c > 'z' ? c : String.fromCharCode(((c.charCodeAt(0) - 'a'.charCodeAt(0) + 13) % 26) + 'a'.charCodeAt(0)); }).join('')
var arr = [3,6,1,54,2,-4,8,10,3,7]
function qs(a) {
if (a.length < 2) return a
var part = a.shift()
var higher = [], lower = []
for (var i = 0; i < a.length; i ++) {
var x = a[i] // *** THIS LINE ***
(x < part ? lower : higher).push(x)
}
return qs(lower).concat([part]).concat(qs(higher))
}
alert(qs(arr))
주석으로 표시된 줄에 세미콜론이 없다는 사실을 제외하고는 퀵 정렬을 사용하면 잘못 구문 분석되어 충돌이 발생합니다.
해당 줄의 끝에 세미콜론을 추가하면 수정됩니다.
이름을 입력하고 벡터에 저장합니다. 플래그 값 입력시 이름을 인쇄합니다. 사용자가 더 많은 이름을 생각하는지 묻습니다. 그렇다면 이름을 입력하십시오.
#include <iostream>
#include <string>
#include <vector>
using namespace std;
void print(const vector<string>& v) {
for (int i = 0; i <= names.size(); i++)
cout << v[i] << endl;
}
void input(vector<string>& v) {
string tmp;
cout << "Enter a list of names seperated by returns: ";
do {
getline(cin, tmp);
if (tmp != "-1")
v.push_back(tmp);
} while (tmp != "-1");
print(v);
}
int main() {
vector<string> names;
string tmp;
do {
input(names);
cout << "Do you have any more names to input (y or n)? ";
cin >> tmp;
} while (tmp == "y");
return 0;
}
비 C ++, Java, C 사용자의 경우 오류는 print()
s for
문에 있습니다. 이어야합니다 for (int i = 0; i < names.size(); i++)
. 이것은 컴파일러 문자를받을 때까지 한 문자 만 있고 for
루프에 > = 연산자가 필요할 때가 있기 때문에 간과하기 쉬운 오류 입니다.
print()
나중에 코드의 어딘가에 두는 것이 더 좋을 것이므로 독자는 실수하기 전에 약간 피곤해 질 것입니다 :)