#RT,如果我直接char*的方式給要輸出的字符串賦值並且直接把字符串長度硬編碼到RETURN_STRINGL中,執行的時候能輸出結果,但是後面跟著報“段錯誤,核心已轉儲”,但是用官方推薦的spprintf函數賦值並且獲取長度就不會報錯,這是為什麼啊?
PS:圖上的代碼RETURN_STRINGL的第二個參數改成2一樣報錯,我改成3是以為PHP會把末尾的0也算進去,不過事後試了幾次發現應該不是這裡的問題
学习是最好的投资!
RETURN_STRINGL返回的字串,必須是PHP記憶體管理分配的內存,結束後會由PHP本身釋放,spprintf就是使用的PHP記憶體管理。像這種情況,可以設定第三個參數為1,表示PHP本身分配對應記憶體拷貝一份字串。
RETURN_STRINGL返回的字串,必須是PHP記憶體管理分配的內存,結束後會由PHP本身釋放,spprintf就是使用的PHP記憶體管理。像這種情況,可以設定第三個參數為1,表示PHP本身分配對應記憶體拷貝一份字串。