Size: a a a

2018 November 23

YG

Yuriy Glukhov in ru.nim.talks
Не собирается?
источник

T

Tverd in ru.nim.talks
Error: expression has no address; maybe use 'unsafeAddr'
да
источник

YG

Yuriy Glukhov in ru.nim.talks
Покажи код плз
источник

T

Tverd in ru.nim.talks
var domainsPtr: ptr UncheckedArray[virDomainPtr]
var dn = conn.virConnectListAllDomains(addr(cast[virDomainPtr](domainsPtr)), flags)
источник

YG

Yuriy Glukhov in ru.nim.talks
Addr брать нужно от domainsptr
источник

T

Tverd in ru.nim.talks
тогда типы не совпадают, ругается
источник

YG

Yuriy Glukhov in ru.nim.talks
Каст остаётся на месте. Он приведет типы
источник

T

Tverd in ru.nim.talks
var dn = conn.virConnectListAllDomains(addr(domainsPtr), flags)
источник

YG

Yuriy Glukhov in ru.nim.talks
Cast[...](addr(domainsptr))
источник

T

Tverd in ru.nim.talks
var dn = conn.virConnectListAllDomains(cast[virDomainPtr](addr domainsPtr), flags)

вот так тоже
Error: type mismatch: got <virConnectPtr, virDomainPtr, uint32>
but expected one of:
proc virConnectListAllDomains(conn: virConnectPtr; domains: ptr ptr virDomainPtr;
                            flags: cuint): cint
 first type mismatch at position: 2
 required type: ptr ptr virDomainPtr
 but expression 'cast[virDomainPtr](addr(domainsPtr))' is of type: virDomainPtr

expression: virConnectListAllDomains(conn, cast[virDomainPtr](addr(domainsPtr)), flags)
источник

YG

Yuriy Glukhov in ru.nim.talks
Оу.... Я только заметил, что в С 2 звёздочки. Что это значит? Это не массив.
источник

T

Tverd in ru.nim.talks
указатель на указатели
источник

T

Tverd in ru.nim.talks
массив своего рода
источник

YG

Yuriy Glukhov in ru.nim.talks
Нет. Virdomainptr*, это указатель на указатели, массив своего рода.
источник

YG

Yuriy Glukhov in ru.nim.talks
А у тебя virdomain**
источник

YG

Yuriy Glukhov in ru.nim.talks
Virdomainptr** то бишь
источник

T

Tverd in ru.nim.talks
грубо говоря, я получаю адрес из функции, в котором лежат указатели на указатели на virDomain ))) я понимаю что это довольно не весело, но что имеем в C хедере. И по этому я очень давно отошел от С!
источник

YG

Yuriy Glukhov in ru.nim.talks
то есть это массив из указателей на virdomainPTR?
источник

T

Tverd in ru.nim.talks
да
источник

YG

Yuriy Glukhov in ru.nim.talks
это меняет дело
источник