Ich versuche, eine C-Struktur einzukapseln, deren Mitglied ein Array von Zeigern auf Strukturen ist, und ich habe Probleme, herauszufinden, wie es geht.
Nehmen wir an, der C-Code sieht so aus:
%Vor%Diese Art von Code funktioniert:
%Vor%aber es ist schrecklich.
A CArray
ist hier nutzlos, weil es nur ein Zeiger auf ein Array ist, nicht ein Array von Zeigern; Ich kann etwas wie has A @.a
nicht verwenden, weil ein repr('CStruct')
nicht mit dieser Art von Attribut umgehen kann.
Irgendein Hinweis?
Ich schreibe einen Beispielcode dafür. Die C-Seite:
%Vor% Da Rakudo das Abrufen einer Stapelvariablen von C-Seite nicht unterstützt, sollten Sie malloc verwenden, um einen struct bar
auf dem Heap zuzuordnen.
Kompilieren Sie dann Code mit gcc, z. B. gcc -shared -fPIC -o libshasa.so xxx.c
.
Und das ist Perl6 Seite:
%Vor%Dies gibt aus:
%Vor%Tags und Links arrays perl6 nativecall