c如何在结构中创建动态数组指针
我从用户那里获取数组中元素数的输入。数组在我的结构“Polymer”中c如何在结构中创建动态数组指针,c,arrays,struct,C,Arrays,Struct,我从用户那里获取数组中元素数的输入。数组在我的结构“Polymer”中 struct Polymer { int length; struct Monomer *monomer; }polymer; 大体上,我正在创建一个新的单体数组指针,并将“Polymer”中的单体指针设置为它 我得到的错误是“从不兼容指针类型赋值”,我认为这是因为我们正在将单体数组指针转换为单体数组指针。如何在结构中将其声明为单体数组指针?当您可能需要单体数组时,您正在声明一个单体指针数组。放下*:
struct Polymer
{
int length;
struct Monomer *monomer;
}polymer;
大体上,我正在创建一个新的单体数组指针,并将“Polymer”中的单体指针设置为它
我得到的错误是“从不兼容指针类型赋值”,我认为这是因为我们正在将单体数组指针转换为单体数组指针。如何在结构中将其声明为单体数组指针?当您可能需要单体数组时,您正在声明一个单体指针数组。放下
*
:
struct Monomer monomers[size];
polymer.monomer = momomers;
单体
是指针数组。它们没有指向任何有效位置,并且具有垃圾值。而Polymer::monomer
是一个指针。指针数组与指针类型不兼容
相反,尝试-
struct Monomer monomers[size];
polymer.monomer = momomers; // 2
现在这个语句2是有效的,因为数组衰变为指针。< /p>这不是C++,它不应该是聚合物。单体?@黑熊——技术上说,<代码> .<代码>操作符应该与对象关联。这里
Polymer
是结构名称。所以,要说它是成员,我刚才使用了操作符:
。另外,对于数组大小、字符串长度和任何其他大小的对象,都应该使用size\u t
int
是有符号的(您不想要长度为-1的数组,是吗?),并且不能保证足够大以正确存储大小(或者,在病理情况下,它可能太大)。
struct Monomer *monomers[size];
polymer.monomer = momomers;
struct Monomer monomers[size];
polymer.monomer = momomers; // 2