读书人

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

发布时间: 2013-04-26 16:27:53 作者: rapoo

求大神解说数组的动态分配任意大小的空间
想要不限大小的数组,求解说,求个代码。
[解决办法]
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吧。

读书人网 >C++

热点推荐