Doppelter Zeiger?



  • Hallo zusammen

    Versuche mich ein bisschen an der winpcap Bibliothek.

    Wenn pkt_data den Datentyp const unsigned char** pkt_data besitzt, dann kann ja pkt_data nicht mehr verändert werden, oder?

    // Start router
    	while((res = pcap_next_ex( fp, &header, &pkt_data)) >= 0) {
    
    		// Timeout elapsed
    		if(res != 0) {
    ...
    ...
    ...
    

    Blick nicht mehr durch....


  • Mod

    Nein, das const bezieht sich auf das unsigned. const unsigned ** ist ein Zeiger auf ein Zeiger auf einen konstanten unsigned. Ein konstanter Zeiger auf einen Zeiger auf unsigned wäre unsigned **const .

    Die Regel ist, von rechts nach links zu lesen. Zum Beispiel unsigned * const * : Das ist ein Zeiger () auf einen konstanten (const) Zeiger () auf unsigned. Das geht so lange gut, bis man ganz links ist, wo eben oft const unsigned ** geschrieben wird, obwohl unsigned const ** genau das gleiche wäre und gleichzeitig zu der von-rechts-nach-links-Regel passen würde.

    Siehe auch:
    http://http://cdecl.ridiculousfish.com



  • Danke


Anmelden zum Antworten