Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Cannot assign to ix cause it's a fixed variable

Îåêßíçóå áðü ôï ìÝëïò mixio. Τελευταία δημοσίευση από το μέλος mixio στις 16-12-2008, 01:55. Υπάρχουν 2 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  15-12-2008, 14:30 46908

    Cannot assign to ix cause it's a fixed variable

    Εχω τον παρακατω κωδικα:

                fixed (byte* ix = temp)
                {
                    for (int i = 0; i < 8; i++)
                    {
                        k = IPAddress.NetworkToHostOrder(*ix);
                        k ^= seed;
                        *ix++ = (byte)IPAddress.HostToNetworkOrder(k);
                    }
                }

    Η γραμμη *ix++ = (byte)IPAddress.HostToNetworkOrder(k);
    μου βγαζει "Cannot assign to ix cause it's a fixed variable"

    Ξερει καποιος να με βοηθησει;

    Sleep-deprived psychotic hacker

  •  15-12-2008, 21:43 46918 σε απάντηση της 46908

    Απ: Cannot assign to ix cause it's a fixed variable

    Και ο λόγος που παίζεις με pointers είναι ???

    Αν προσπαθείς να καλέσεις τη HostToNetworkOrder για μία 64bit τιμή καλύτερα να κάνεις ακριβώς αυτό. Να καλέσεις την HostToNetworkOrder η οποία δέχεται Long (64 bit) παραμέτρους. Δεν υπάρχει παραλλαγή η οποία δέχεται byte (8-bit) παραμέτρους, οπότε ο κώδικας σου δεν θα πετύχει αυτό που θέλεις έτσι κι αλλιώς. Αν σκεφτείς ότι η HostToNetworkOrder αλλάζει την σειρά 2 ή περισσότερων bytes, είναι εντελώς περιττό να την καλείς με 1 μόνο byte.

    Όσον αφορά το error που βλέπεις, οφείλεται στο ότι προσπαθείς να χρησιμοποιήσεις κώδικα για C στη C#. Η fixed μπορεί να σου έδωσε ένα pointer στην αρχή ενός πίνακα, δεν μπορείς όμως να πειράξεις αυτόν τον pointer. Αυτό ακριβώς σημαίνει ότι είναι fixed.

    Ομολογώ ότι δεν καταλαβαίνω γιατί προσπαθείς να χρησιμοποιήσεις pointers. Ακόμα και αν θέλεις να πάρεις τις τιμές ενός byte array μία μία, είναι πολύ ευκολότερο να το κάνεις χρησιμοποιώντας το tempIdea παρά αυτό που κάνεις.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  16-12-2008, 01:55 46926 σε απάντηση της 46918

    Απ: Cannot assign to ix cause it's a fixed variable

    Παναγιωτη γεια σου.

    Ο κωδικας σιγουρα δεν ειναι δικος μου. Δεν ξερω C.
    Τον βρηκα και προσπαθω να τον μετατρεψω σε C# για να δω τι θα κανει.

    Απ' οτι καταλαβα αυτο που λες στην 2η παραγραφο εξηγει γιατι τρωω αυτο το error γι'αυτο το σημειωνω και ως απαντηση.


    Sleep-deprived psychotic hacker

Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems