我想修改字符数组中的单个随机元素,其中包括'0'
,'1'
和'2'
。只能修改'0'
,这就是为什么我首先将它们的索引放在另一个数组中(如果有办法更有效地执行此操作,我很乐意更改它)。< / p>
然而,我得到了一个
cygwin_exception::open_stackdumpfile: Dumping stack trace
我知道问题来自这个功能
void ai_move(char (*array)[10])
{
srand (time(NULL));
unsigned char* possible_indexes = {0};
int cpt = 0;
for (int i = 0; i < MAXDATASIZE - 1; ++i)
if ((*array)[i] == '0')
{
possible_indexes[cpt] = i;
++cpt;
}
int rand_index = rand() % (sizeof(possible_indexes) - 1);
(*array)[possible_indexes[rand_index]] = '1';
}
我称之为:
ai_move(&grid);
grid
包含我想要修改的char数组,定义为:
char grid[MAXDATASIZE] = {'0', '0', '0', '0', '0', '0', '0', '0', '0'};
我知道问题可能来自我给grid
作为论据的方式,但经过几个小时的搜索后,我找不到可以改变任何东西的解决方案。
感谢您帮助我。