Copie de chaînes Go vers des pointeurs C char * via CGO
Afin de copier une chaîne Go dans un pointeur C char * via CGO, il est essentiel de respecter la syntaxe correcte et de suivre les directives de gestion de la mémoire appropriées.
Contrairement à votre approche initiale, la bonne méthode consiste à utiliser le Fonction C.CString pour transformer la chaîne Go en chaîne C. Cette fonction alloue de la mémoire pour stocker la chaîne C :
cstr = C.CString(str)
Il est important de noter que même si C.CString vous alloue de la mémoire, il n'assume pas la responsabilité de la libérer. Par conséquent, il est de votre obligation de libérer explicitement cette mémoire en utilisant un appel à :
C.free(unsafe.Pointer(cstr))
En suivant ces directives, vous pouvez copier en toute sécurité et efficacement les chaînes Go dans des pointeurs C char *, permettant une interopérabilité transparente entre ces langages. dans vos candidatures CGO.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!