第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從 Go 向 C 發(fā)送字節(jié)數(shù)組

如何從 Go 向 C 發(fā)送字節(jié)數(shù)組

Go
拉莫斯之舞 2023-07-31 16:42:17
我試圖將一個字節(jié)數(shù)組從 GO 傳遞到 C 函數(shù),但我不能這樣做,這是我的代碼:package main /* #include <stdint.h> #include "api.h" #include "parameters.h" #include "lilliput-ae.h" #include "tool.h" void print(void *b)  {    printf("%d",b[0]);    printf("%d",b[5]);  }  */  import "C"  import "unsafe"   func main() {     a := [16]byte{16, 8, 7, 4, 12, 6, 7, 8, 9, 10, 11, 7, 16, 14, 15, 1}     ptr := unsafe.Pointer(&a[0])     C.print(ptr)   }我的最終目標(biāo)是打印像 uint8_t 數(shù)組這樣的 C 代碼,當(dāng)我成功做到這一點時,我將嘗試將數(shù)組從 C 代碼發(fā)送到 Go。
查看完整描述

1 回答

?
catspeake

TA貢獻(xiàn)1111條經(jīng)驗 獲得超0個贊

我將一個字節(jié)數(shù)組從 Go 傳遞到 C 函數(shù)。

我的目標(biāo)是打印類似uint8_t數(shù)組的 C 代碼。


對于你的例子,

package main


/*

#include <stdio.h>

#include <stdint.h>


void print(void *p) {

    uint8_t *b = p;

    printf("%d ",b[0]);

    printf("%d ",b[5]);

    printf("\n");

}

*/

import "C"


import (

    "fmt"

    "unsafe"

)


func main() {

    a := [16]byte{16, 8, 7, 4, 12, 6, 7, 8, 9, 10, 11, 7, 16, 14, 15, 1}

    fmt.Println(a)

    ptr := unsafe.Pointer(&a[0])

    C.print(ptr)

}

輸出:


[16 8 7 4 12 6 7 8 9 10 11 7 16 14 15 1]

16 6 



查看完整回答
反對 回復(fù) 2023-07-31
  • 1 回答
  • 0 關(guān)注
  • 178 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號