Δημοσιεύτηκε: 27 Ιούλ 2011, 21:19
Είναι επειδή το pairs[i] είναι ορισμένο ως τύπος infoT από το:
και μετά πας να το κάνεις allocate ως δείκτη σε infoT, με το:
Οπότε συντακτικά είναι λάθος.
Πέρα όμως από το συντακτικό λάθος, είναι και λογικό σφάλμα. Ο ορισμός του pairs ως πίνακα από MAXWORDS στοιχεία τύπου infoT έχει ήδη δεσμεύσει χώρο στη μνήμη γι όλα τα στοιχεία του πίνακα. Σε πίνακες δεν μπορείς να κάνεις malloc, μόνο σε δείκτες.
- Κώδικας: Επιλογή όλων
infoT pairs[MAXWORDS];
και μετά πας να το κάνεις allocate ως δείκτη σε infoT, με το:
- Κώδικας: Επιλογή όλων
pairs[i] = (infoT*) malloc( MAXWORDS * sizeof(infoT) );
Οπότε συντακτικά είναι λάθος.
Πέρα όμως από το συντακτικό λάθος, είναι και λογικό σφάλμα. Ο ορισμός του pairs ως πίνακα από MAXWORDS στοιχεία τύπου infoT έχει ήδη δεσμεύσει χώρο στη μνήμη γι όλα τα στοιχεία του πίνακα. Σε πίνακες δεν μπορείς να κάνεις malloc, μόνο σε δείκτες.