我正在尝试做一个家庭作业来测量 L2 缓存的大小。我正在尝试用随机整数创建和填充一个大数组(对于缓存来说太大了),然后我将以不同的步长遍历它并对性能进行基准测试。
我遇到的问题是,当我为大数组分配内存然后开始用 1 到 100 之间的随机整数填充数组时,程序崩溃(堆栈溢出?)。
不幸的是,我对 c 编程很陌生。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int argc, char *argv[])
{
int buffSize = sizeof(int) * 2000000;
int * buff = (int*) malloc(buffSize);
srand(time(NULL));
for (int i = 0; i < buffSize; i++)
{
int r = rand() % 100 + 1;
buff[i] = r;
}
return 0;
}