#include<iostream>
using namespace ::std;
int main()
{
//int* p1 = (c*)malloc(0);
char* p = new char[0xfffffffful+1];//这不会开辟空间,就跟0一样。
delete[] p;
return 0;
}
无符号整数0xffffffff加1之后的结果是0了
void game()
{
printf("\n");
//没排查的地方全放成 * 所以用字符数组
char mine[ROWS][COLS] = { 0 };
char show[ROWS][COLS] = { 0 };
//初始化一下棋盘
InitBoard(mine, ROWS, COLS, '0');//先把棋盘初始化为 0
InitBoard(show, ROWS, COLS, '*');//将展示的数组初始化为 *
//布置雷
SetMine(mine, ROW, COL);//mine 数组放雷 放在 9*9 的位置里面
//打印棋盘
//DisplayBoard(mine, ROW, COL);//打印出 9*9
//printf("\n");
DisplayBoard(show, ROW, COL);
printf("\n");
//排查雷 把排查产生的信息填充到show数组里面
FindMine(mine, show, ROW, COL);//因为最后操作的 还是 9*9
}
数组的元素是有上限的,因为数组在内存中占据一段连续的空间,而内存的容量是有限的,所以数组的长度也是有限的。具体来说,数组的长度受到以下因素的限制:
内存空间的大小:数组的长度不能超过内存空间的大小,否则可能会出现内存溢出的情况。
数据类型的大小:不同的数据类型占用的内存大小不同,所以不同的数据类型所组成的数组长度也不同。
操作系统和编译器的限制:不同的操作系统和编译器对数组长度的限制也不同,一般会有一个最大长度的限制。
为了避免数组长度超出限制,可以采用以下几种方法:
合理地设计程序,避免使用过大的数组或者使用过多的数组。
使用动态数组:动态数组是一种可以在运行时动态分配内存的数组,长度不受静态数组的限制,可以根据需要动态地分配和释放内存。
使用链表等数据结构:链表等数据结构不需要连续的内存空间,可以根据需要动态分配和释放内存,长度不受数组的限制。
以下是使用动态数组的示例代码:
#include <iostream>
using namespace std;
int main()
{
// 动态分配一个长度为10的整型数组
int* arr = new int[10];
// 使用数组
for (int i = 0; i < 10; i++) {
arr[i] = i;
cout << arr[i] << " ";
}
cout << endl;
// 释放数组所占用的内存
delete[] arr;
return 0;
}
以上代码中,使用了new运算符动态分配了一个长度为10的整型数组。使用数组后,需要使用delete运算符释放数组所占用的内存。