基本上我所要做的就是將某些(多項式)指定給給定索引處的動態數組,並覆蓋所有內容。爲了簡單起見,我只是使subtract()返回一個指向多項式數組中第一個元素的指針。所以,這段代碼應該複製第一個元素的內容並替換另一個元素(我知道深度複製是必要的,而且是在減法中實現的)。我已經被Java寵壞了(和你友善的人)...指向動態數組結構的指針
當我去打印它被複制到索引時,沒有什麼。 通常像Poly1 = 2x^3 + 4x
會打印,但它只是打印Poly1 =
。
編譯正常並運行,但沒有做到我所需要的。編輯:運行良好,如果沒有任何在該指數。如果在索引處有東西,seg錯誤。
//Portion of main from another file
Polynomial* subtracted = subtract(op1_index, op2_index);
insert(subtracted, diff_index);
printPolynomial(diff_index);
//Methods in question (utils file)
void insert(Polynomial* element, int index) {
if(index > num_polynomial) {
polynomialArray = (Polynomial*)realloc(polynomialArray, (index + 1) * sizeof(Polynomial));
}
free(polynomialArray[index].polynomialTerm);
polynomialArray[index] = *element; // Problem here?
}
Polynomial* subtract(int op1_index, int op2_index) {
return &polynomialArray[0];
}
//Typedefs accessible in main and utils file
typedef struct term {
int exponent;
int coefficient;
} Term;
typedef struct polynomial {
Term *polynomialTerm;
} Polynomial;
//variables accessible in utils file
static Polynomial *polynomialArray;
int num_polynomial; // counter to keep track of the number of polynomials
您可以停止在您的問題中添加「編程語言」標籤。這不是必需的。 – 2011-03-24 22:16:47
你能顯示你的打印功能嗎? – MByD 2011-03-24 22:17:55