我试图在代码中随机化一个故事的多个部分。我将分几部分进行随机化,但是每当我的随机数为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]
位置时,您正在破坏内存,结果是不确定的/不可预测的。