Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.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_C99 - Fatal编程技术网

C 动态数组和结构

C 动态数组和结构,c,c99,C,C99,谢谢!我只需要把任务的正确方面放到学期上来 我必须制作一个多项式的动态数组,每个多项式都有一个动态的项数组。当给术语一个指数和系数时,我得到了一个错误“在“{”标记之前的预期表达式”。我在赋值时做了什么错误的事情 还有,有没有一种简单的方法可以让术语的动态数组按其指数排序?我只是打算循环,打印最大值,但更愿意按顺序存储它们 谢谢 polynomialArray[index].polynomialTerm[0] = {exponent, coefficient}; // ISSUE HERE

谢谢!我只需要把任务的正确方面放到学期上来

我必须制作一个多项式的动态数组,每个多项式都有一个动态的项数组。当给术语一个指数和系数时,我得到了一个错误“在“{”标记之前的预期表达式”。我在赋值时做了什么错误的事情

还有,有没有一种简单的方法可以让术语的动态数组按其指数排序?我只是打算循环,打印最大值,但更愿意按顺序存储它们

谢谢

polynomialArray[index].polynomialTerm[0] = {exponent, coefficient};  // ISSUE HERE
改为

polynomialArray[index].polynomialTerm[0] = (Term){exponent, coefficient};

如果这是C99,我想你需要

polynomialArray[index].polynomialTerm[0] = (Term){exponent, coefficient};

如果这是C99,我想你需要

polynomialArray[index].polynomialTerm[0] = (Term){exponent, coefficient};

您不能这样设置属性值(仅在声明期间)

您应该这样分配:

polynomialArray[index].polynomialTerm[0].exponent = exponent;
polynomialArray[index].polynomialTerm[0].coefficient = coefficient;
关于另一个问题,这里确实不需要断言。如果指针分配了malloc值,指针将不会为NULL。如果不是,则最好为NULL,以便测试malloc是否失败

要订购它,您需要使用某种排序算法。我认为,如果您正在寻找一种简单的方法,那么您现在的做法很好。如果订购非常关键(如实时应用程序),那么您需要重新考虑该方法。如果没有,请继续使用它并继续

保重,,
因为您不能像这样对值进行属性化(仅在声明期间)

您应该这样分配:

polynomialArray[index].polynomialTerm[0].exponent = exponent;
polynomialArray[index].polynomialTerm[0].coefficient = coefficient;
关于另一个问题,这里确实不需要断言。如果指针分配了malloc值,指针将不会为NULL。如果不是,则最好为NULL,以便测试malloc是否失败

要订购它,您需要使用某种排序算法。我认为,如果您正在寻找一种简单的方法,那么您现在的做法很好。如果订购非常关键(如实时应用程序),那么您需要重新考虑该方法。如果没有,请继续使用它并继续

保重,,
因为您的代码中存在效率问题:

  if(index > (sizeof(polynomialArray)/sizeof(Polynomial)))
      polynomialArray = (Polynomial*)realloc(polynomialArray, index * sizeof(Polynomial));

由于多项式数组是一个指针,我认为sizeof(polynomialArray)将始终是4或8(64位系统)。因此,只要索引大于0,上述if语句将始终为真。

代码中存在效率问题:

  if(index > (sizeof(polynomialArray)/sizeof(Polynomial)))
      polynomialArray = (Polynomial*)realloc(polynomialArray, index * sizeof(Polynomial));
由于多项式数组是一个指针,我认为sizeof(polynomialArray)将始终是4或8(64位系统)。因此,只要索引大于0,上述if语句将始终为真。

很好。
sizeof(X)
给出了原作者想要的答案当且仅当
X
是一个数组时。很好的回答。
sizeof(X)
给出了原作者想要的答案当且仅当
X
是一个数组时。