c++ - 随机填充二维数组

标签 c++ c

此代码适用于 n<20,但对于 n=40 会出现访问冲突错误: 此代码将随机填充 X 和 O。

 int i=0,j=0;
 int x=0,y=0;
 int n=40;
 for(i=0;i<n;i++)
 {
     for(j=0;j<n;j++)
         arr[i][j]='O';
 }

 srand(clock());
 for(i=0;i<n*n;i++)
 {
   x = rand()%n;
   y = rand()%n;
   if(arr[x][y] == 'O') arr[x][y]='X';
 }

声明:

 arr = (char**)malloc(n);
 for(i=0;i<n;i++)
    arr[i] = (char*)malloc(n);

最佳答案

改变

arr = (char**)malloc(n);

arr = (char**)malloc(n*sizeof(char*));

关于c++ - 随机填充二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8393049/

相关文章:

c - 函数结构: "if error, early return" or "if error, assign, else, assign, return assigned value"?

c - 如何计算NPP的图像旋转位移?

c++ - t* 指向什么值

c - 内存中的单个副本

c - char* 和 const char* 的区别?

C++ 函数和循环

c++ - 将图像分割成 64x64 的 block

c++ - Google Mocked 成员函数中的 std::pair 参数编译失败

c++ - 为什么 numeric_limits::min 为 int 返回负值,但为 float/double 返回正值?

c++ - SDL_SaveBMP 倒置保存图片