c++ - PHP擴充中RETURN_STRINGL必須使用spprintf函式嗎?
PHPz
PHPz 2017-06-05 11:07:02
0
1
807

#RT,如果我直接char*的方式給要輸出的字符串賦值並且直接把字符串長度硬編碼到RETURN_STRINGL中,執行的時候能輸出結果,但是後面跟著報“段錯誤,核心已轉儲”,但是用官方推薦的spprintf函數賦值並且獲取長度就不會報錯,這是為什麼啊?

PS:圖上的代碼RETURN_STRINGL的第二個參數改成2一樣報錯,我改成3是以為PHP會把末尾的0也算進去,不過事後試了幾次發現應該不是這裡的問題

PHPz
PHPz

学习是最好的投资!

全部回覆 (1)
習慣沉默

RETURN_STRINGL返回的字串,必須是PHP記憶體管理分配的內存,結束後會由PHP本身釋放,spprintf就是使用的PHP記憶體管理。像這種情況,可以設定第三個參數為1,表示PHP本身分配對應記憶體拷貝一份字串。

    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板
    關於我們 免責聲明 Sitemap
    PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!