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
是一个数组时。