This expression

    C.GoString(C.char*(&p.mach_name))

gives this error:

    type _Ctype_char is not an expression

On Thu, Apr 30, 2020 at 2:09 PM Bruno Albuquerque <b...@gmail.com> wrote:

> Not pretty but if you are sure the array is zero-terminated, you can
> simply cast it to the correct type:
>
> C.GoString((C.char*)(&p.hostname))
>
> (untested)
>
>
> On Thu, Apr 30, 2020 at 1:06 PM Dean Schulze <dean.w.schu...@gmail.com>
> wrote:
>
>> That gives this error (which I've gotten with just about everything I
>> try):
>>
>> cannot use &p.mach_name (type *[25]_Ctype_char) as type *_Ctype_char in
>> argument to _Cfunc_GoString
>>
>> It seems to be the fixed length of the char[] that gives cgo a problem.
>>
>>
>> On Thursday, April 30, 2020 at 1:46:34 PM UTC-6, Jan Mercl wrote:
>>>
>>> On Thu, Apr 30, 2020 at 8:17 PM Dean Schulze <dean.w...@gmail.com>
>>> wrote:
>>> >
>>> > I must be missing something pretty simple, but I have a C struct like
>>> this:
>>> >
>>> > typedef struct line
>>> > {
>>> >     char hostname[HOSTNAME_MAX];
>>> >     char ip[IP_MAX];
>>> >     ...
>>> > }
>>> >
>>> > When I try to do the simple thing
>>> >
>>> > C.GoString(p.hostname)
>>>
>>> An array of a fixed size within a C struct is a value (the same as in
>>> Go), but C.GoString expects a pointer to a C.char. Try
>>> `C.GoString(&p.hostname)`.
>>>
>>> Not tested. Note that if hostname is not properly zero terminated,
>>> your code will crash or misbehave.
>>>
>>> (Automatic array decay applies to C code, but not in Go.)
>>>
>> --
>> 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.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/golang-nuts/72d6cdaa-a6ca-4a60-b60a-a3a42de5d8d6%40googlegroups.com
>> <https://groups.google.com/d/msgid/golang-nuts/72d6cdaa-a6ca-4a60-b60a-a3a42de5d8d6%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/CA%2BLiX6FpBX-Og%2BE0nVL-3NPv%2BZyD%3DbVog5QqaavoXZ%2BtunM9fg%40mail.gmail.com.

Reply via email to