首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

求大神解说数组的动态分配随便大小的空间

2013-04-26 
求大神解说数组的动态分配任意大小的空间想要不限大小的数组,求解说,求个代码。[解决办法]int n 10000ch

求大神解说数组的动态分配任意大小的空间
想要不限大小的数组,求解说,求个代码。
[解决办法]
int n = 10000;
char* buf = (char*)malloc(n * sizeof(char));
[解决办法]
这样说吧,如果你想弄个数组存储自定义的struct类型的元素,例如你定义了:
struct strucName
{
   int i;
   short h;
   CString str;
   .......
};
然后有strucName v1; strucName v2; strucName v3; ........strucName vn,不知道多少个元素,
你想把这些元素存储在一个数组里面,但是事先不知道要存储元素的个数,这时如果用普通的数组,则需要事先知道要存储元素的个数,否则会浪费内存空间。
所以你可以用STL中的容器,或者用MFC中提供的CArray,CMap等等。
说下CArray的用法,以上面为例,可以这样声明:
CArray <strucName, strucName&>m_array; // 声明数组,以及数组中存储元素的类型(你自己定义的strucName类型)
m_array.RemoveAll(); // 用之前初始化下,清空数组
m_array.Add(v1); // 存储第0个元素
m_array.Add(v2); // 第1个元素
....
m_array.Add(vn); // 第n个元素
这样用多少就加入多少。
m_array.GetAt(INT_PTR nIndex); // 可以访问数组中的某个元素
m_array.GetSize(); // 可以返回数组中存储元素的个数
其他操作的具体细节自己去查msdn吧。

热点排行