On Mon, Nov 6, 2017 at 2:17 PM, Chun Zhang <chunzh...@gmail.com> wrote: > > Can you please give some suggestion on how to properly handle this issue? > The C++ API cannot be modified.
Use C.CString as described in the cgo docs at https://golang.org/cmd/cgo . Ian > On Monday, November 6, 2017 at 3:25:13 PM UTC-5, Ian Lance Taylor wrote: >> >> On Mon, Nov 6, 2017 at 10:59 AM, Chun Zhang <chun...@gmail.com> wrote: >> > >> > Sorry about the confusion! My gocode set the value of the device and >> > then >> > pass it to C++ code. >> > >> > Code goes like this: >> > >> > device := "eth1" // hardcoding this value works or retrieving it from >> > Flag >> > as below >> > >> > flag.StringVar(&device, "Device", "eth1", "NIC to Listen") >> >> It would help if you showed a complete standalone example, but I think >> I see what you mean. This works because the current compiler produces >> a string literal for "eth1" that is stored in the program itself. The >> internal string pointer points into the program text segment, and so >> it is not a Go pointer, and so you do not get the error. >> >> A Go *string is still not a C char**, but I guess that a *string does >> look like C struct { char *p; uintptr_t n; }*, so since you are >> passing only a single string it may be working by accident. Note that >> the Go string is not necessarily NUL-terminated, but perhaps in this >> case it happens to be. >> >> Ian > > -- > 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+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. -- 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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.