c++中用new给未知大小的数组分配空间怎么弄?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++中用new给未知大小的数组分配空间怎么弄?相关的知识,希望对你有一定的参考价值。

想用new来分配动态空间,但是比如一个用来存待输入单词的字符数组,不知道大小怎么办?

参考技术A new 是动态申请的,需要空间之前,你应该先去获取需要的大小,然后使用new 申请空间。你描述的问题,可以这样考虑,你先申请一块空间,然后开始接受输入,当输入的长度大于你预先申请的空间时,重新申请一块更大的空间,将之前输入拷贝到新申请的空间,释放预先申请的空间。 参考技术B 可以定义一个缓冲区,当读入字符超过缓冲大小了,就在原来基础上在增加一个缓冲的大小,把原来缓冲的内存复制过来,释放原来内存。然后重载 >> 操作符,在重载函数中实现在输入过程中动态调节大小的。

C++中用new开辟一个对象后怎么给其私有数据成员赋值

要实现C++中用new开辟一个对象后怎么给其私有数据成员赋值,那么有两个途径
1.
设置友员,友员类或者友员函数。只要是这个类的友员,都可以访问它的私有成员
2.
为类添加公有函数来访问私有成员,最典型的主是Getter/Setter
你说的用链表连接,不明白是什么意思。
new
ClassName()将产生一个ClassName的对象,并返回其地址,所以
ClassName*
p
=
new
ClassName()
然后这个p当然可以用于链表。
参考技术A 你用new是分配了一个类的空间,然后这个类的指针就用p来表示了,赋值的时候只需要p->chengyuan-xxx,就可以了

以上是关于c++中用new给未知大小的数组分配空间怎么弄?的主要内容,如果未能解决你的问题,请参考以下文章

关于如何定义一个未知大小的数组

C++中用new开辟一个对象后怎么给其私有数据成员赋值

C++ new申请内存,提示 内存不足

new和delete运算符 c/c++

C++ - 尽管有括号列表初始化,但不能“新建”未知大小的数组?

获取动态分配的数组大小