<分区>
我要买一台新电脑,所以我和一个 friend 决定,我们想用我们电脑的内存来玩俄罗斯轮盘赌。一般前提是我们在内存中随机取一个位置并将其分配给一个随机值,然后看看谁的计算机故障/崩溃最快或最差。我所做的一切都不是一个好主意,因此不安全的做法是被接受的,甚至在这里受到鼓励。
这是我目前所拥有的:
#include <iostream>
#include <stdlib.h>
#include <time.h>
// use preprocessor to avoid losing this data during the running of the program
// 4GB RAM (4 * 2^32 bytes)
#define NUM_MEMORY_LOCATIONS 4294967296
int main()
{
// Intializes random number generator
time_t t;
srand((unsigned) time(&t));
while (true)
{
// 4GB RAM (2^32 bytes)
/** generate a 31-bit number between 0b0 (0) and 0b111 1111 1111 1111 1111 1111 1111 1111 (4294967295) **/
// generate a 15-bit number between 0b0 (0) and 0b111 1111 1111 1111 (32767)
unsigned long int hi = rand() % 32768;
// shift the bits
hi <<= 16;
// generate a 15-bit number between 0b0 (0) and 0b111 1111 1111 1111 (32767)
unsigned long int med = rand() % 32768;
// shift the bits
med <<= 1;
// generate a 1-bit number between 0b0 (0) and 0b1 (1)
unsigned long int lo = rand() % 2;
// combine to make final random number
unsigned long int randNum = hi + med + lo;
// select a random position in memory
void * randomPointer = 0;
randomPointer += randNum;
// Something like this here to break my computer:
//*randomPointer = 0;
}
}
我不知道如何设置这个值,即使设置为 0。另外,我不确定应该使用哪种指针类型。 void 指针似乎不起作用,但我可能只是没有完全理解 c++ 中不安全内存管理的复杂性。
有人知道我该怎么做吗?任何帮助将不胜感激。