初级会员
  • 第 7454 位会员
  • zhaohao
  • 2017-02-16 17:17:01
  • Offline
  • 20 9

最近发布的文章

    暂无

最近分享的资源

    暂无

最近发布的项目

    暂无

最近的评论

  • #3 @marlonche 长知识了
  • #1 @channel 这个代码改成异步的了。 但是用postman请求时,第一个返回时对的,之后就变成框架默认返回了,不是c.JSON(http.StatusOK, name) 返回的了
  • #1 @channel 没有错误信息
  • 代码有一个小错误 ~~~ package main /* #include <stdio.h> #include <string.h> #include <stdlib.h> unsigned char ** f1() { int i, j; unsigned char ** original = (unsigned char **)malloc(8); for(i = 0; i < 8; i++) { original[i] = (unsigned char *)malloc(1024); for(j = 0; j < 1024; j++) { original[i][j] = (unsigned char)(j); } } return original; } void f2(unsigned char **arr) { int i, j; printf("f2\n"); for(i = 0; i < 8; i++) { printf("i=%d\n", i); for(j = 0; j < 1024; j++) { printf("%02x", arr[i][j]); } printf("\n\n"); } } */ import "C" import "fmt" import "unsafe" func main() { dirs := make([][]byte, 8) for i := 0; i < 8; i++ { fmt.Println("i=", i) dirs[i] = make([]byte, 1024) for j := 0; j < 1024; j++ { dirs[i][j] = byte(j) } fmt.Printf("%x\n", dirs[i]) } C.f2((**C.uchar)(unsafe.Pointer(&dirs[0][0]))) buf := C.f1() decodeBuf := uintptr(unsafe.Pointer(buf)) var enBuf [8][1024]byte for i := 0; i < 8; i++ { for k := 0; k < 1024; k++ { tBuf := unsafe.Pointer(decodeBuf) enBuf[i][k] = *(*byte)(tBuf) decodeBuf += unsafe.Sizeof(enBuf[i][k]) } fmt.Printf("%d buf=%x\n", len(enBuf[i]), enBuf[i]) } } ~~~ 不知道为什么不能访问???
  • #2 @stevewang 卧槽,还可以这样。。。 涨姿势了!