viewimage.php?id=2ab4c42ef0d0&no=24b0d769e1d32ca73cec8efa11d02831ed3c848cabfee483347b0fb095a403c5510d0263d71a0d3fd1c895dfec11d100f8d86d8f857546bd8e96fd86a45da902a2be9c0014bed32451c87a32efc9d5c6802cf84a6f31d4c094dd2537eb2d717457dca564e2



// main.go

package main

// #include <stdlib.h>
import "C"
import (
    "runtime/debug"
    "unsafe"
)

func main() {
    // disable garbage collection
    debug.SetGCPercent(-1)

    ptr := unsafe.Pointer(C.malloc(C.size_t(0x10)))
    C.free(ptr)
}


되긴 됨


물론 코드 중에 힙 메모리 할당하는 곳이 있으면

runtime.GC() 호출해서 수동으로 GC해줘야 됨
(syscall.MMap으로 할당한 건 syacall.MUnMap으로 해제 가능)

힙으로 가는 게 있는지는 컴파일 시 -gcflags -m 옵션으로 검사 가능