我试图在代码中随机化一个故事的多个部分。我将分几部分进行随机化,但是每当我的随机数为0时,每个数组中的第一项都不会打印正确的值。

srand(time(NULL));

int random = rand() % 3;

const char *residence[2];
residence[0] = "house";
residence[1] = "apartment";
residence[2] = "trailer";

const char *color[2];
color[0] = "green";
color[1] = "purple";
color[2] = "red";

printf("%s", residence[0]);


我期望打印驻留数组中第一项的输出为house,但是当我尝试Residence [0]或我的随机数变为0时,输出为红色。

最佳答案

声明为[2]的数组可以在位置[0]和位置[1]容纳2个元素。

当您尝试将某些内容放置在[2]位置时,您正在破坏内存,结果是不确定的/不可预测的。

10-06 14:53