कभी कभी सी कार्य करने के लिए शून्य पैरामीटर पारित करने के लिए, एक शून्य सूचक एक सी एपीआई के लिए आवश्यकता हो सकती है।सीजीओ, कैसे
सीजीओ में संभव है?
उदाहरण के लिए, मैं एक जाओ भाषा कार्यक्रम में strcmp()
करने के लिए एक शून्य तर्क के पास करना चाहते हैं:
package strutil
/*
#include <stdlib.h>
#include <string.h>
*/
import (
"C"
"unsafe"
)
func StrCmp(a, b string) int {
pca := C.CString(a)
defer C.free(pca)
pcb := C.CString(b)
defer C.free(pcb)
ret := C.strcmp(pca, pcb)
return int(ret)
}
अगर मैं nil
को pca
निर्धारित करते हैं, यह त्रुटि आती:
Exception 0xc0000005 0x0 0x0 0x76828b21
PC=0x76828b21
signal arrived during cgo execution
strutil._Cfunc_strcmp(0x0, 0x761b00, 0x0)
strutil/_obj/_cgo_gotypes.go:79 +0x49
strutil.StrCmp(0x19, 0x10, 0x4bbf38, 0xa, 0x1fbc1f98, 0x0, 0x0, 0xffff, 0x0, 0x0, ...)
तो, क्या मैं नल को strcmp पास कर सकता हूं?
धन्यवाद
मैं जाओ में सी एपीआई उपयोग नहीं किया है, लेकिन अपने कार्य को स्वीकार करने की अनुमति के लिए एक ' Null', तुम कर सकते हो 'strcmp (ए, बी * स्ट्रिंग) पूर्णांक {...}' समारोह सी मानक के –