Converting *byte to unsafe.Pointer and back to *byte

93 views
Skip to first unread message

dmitry....@jetbrains.com

unread,
Feb 25, 2020, 7:10:46 AM2/25/20
to golang-nuts
What is the meaning of the conversion

    var b []byte
    var p *byte = (*byte)(unsafe.Pointer(*b[0]))


How it is different from

    var b []byte
    var p *byte = &b[0]

Thank you!

Keith Randall

unread,
Feb 25, 2020, 6:29:20 PM2/25/20
to golang-nuts
On Tuesday, February 25, 2020 at 4:10:46 AM UTC-8 dmitry....@jetbrains.com wrote:
What is the meaning of the conversion

    var b []byte
    var p *byte = (*byte)(unsafe.Pointer(*b[0]))

You mean &b[0] at the end there, not *b[0].
 


How it is different from

    var b []byte
    var p *byte = &b[0]


It is not any different. Not sure why the code goes through that hoop unnecessarily.
Probably historical accident. Maybe go through the change history and see how it evolved.
 
Thank you!

robert engels

unread,
Feb 25, 2020, 10:34:47 PM2/25/20
to Keith Randall, golang-nuts
Maybe an artifact of the C to Go automatic translation tool.

--
You received this message because you are subscribed to the Google Groups "golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/68ad8286-1bcf-4706-ad4c-f33147387c2e%40googlegroups.com.

Reply all
Reply to author
Forward
0 new messages