CC++类成员动态增加

CC++类成员动态增加,第1张

对话框初始化和类成员动态添加有什么关系?初始化只是一个给类变量赋值的过程

GetDlgItem(IDC_EDIT)->SetWindowText(_T("你的字符串"))

1、可以在结构体中添加指针类成员变量,并在成员函数中实现动态数组的分配。

2、以下以一个仅实现整型动态数组,不包含其它功能的类为例做说明。

class array //类名

{

    public:

        int *v //动态数组首地址。

        int length //动态数组长度。

        array(int len)

        {

            

            if(len <= 0)//初始化长度非法。

            {

                length = 0

                v = NULL 

            }

            else

            {

                length = len

                v = new int[length]//内存分配。

            }

        }

        ~array()

        {

            delete [] v//析构中释放内存。

        }

}

你这个已经开辟好了啊,

array = (struct record *)malloc(sizeof(struct record )*num)

就是开辟了num*sizeof(struct record )大小的连续空间

不过你后边对array进行 *** 作时候尽量不要用数组形式,用指针形式会比较好。

开辟好了,你这就是固定的num个元素的数组,

如果要增大这个数组中元素的个数,就是把这个数组变长的话,

只能重新申请新的总个数的空间大小,比如增长m个

就只能重新申请 (struct record *)malloc(sizeof(struct record )*(num+m))

然后把原来的数据复制过去,因为数组是连续的空间,必须一次分配好全部内存才行。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11653478.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存