Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c如何在结构中创建动态数组指针_C_Arrays_Struct - Fatal编程技术网

c如何在结构中创建动态数组指针

c如何在结构中创建动态数组指针,c,arrays,struct,C,Arrays,Struct,我从用户那里获取数组中元素数的输入。数组在我的结构“Polymer”中 struct Polymer { int length; struct Monomer *monomer; }polymer; 大体上,我正在创建一个新的单体数组指针,并将“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