asprintf

    3熱度

    1回答

    我想在這種形式顯示一個字符串創建:在殼體天 「在3天內0點15分07秒」或「0點15分07秒」被0 所以我寫了一些代碼如下 #include<stdio.h> #define LEASE_TIME_USING_DAYS "in %d days %c%d:%c%d:%c%d\n" #define LEASE_TIME_NOTUSING_DAYS "in %c%d:%c%d:%c%d\n"

    37熱度

    2回答

    我很難理解你爲什麼需要asprintf。 這裏手冊中它說 功能asprintf()和vasprintf()被sprintf的類似物(3)和 vsprintf中(3),不同之處在於它們分配一個字符串大到足以容納 輸出包括終止空字節,並通過第一個參數向它返回一個指針 。這個指針應該被傳遞給 免費(3),以便在不再需要時釋放分配的存儲空間。 因此,這裏是我想了解的例子: asprintf(&buffer

    -1熱度

    2回答

    我讀的書「21世紀C」(第一的Editon),並使用asprintf 得到的字符串不使用的malloc /尺寸爲字符串的長度找到一個有趣的節目或空間分配。請閱讀同一本書附帶的圖片以瞭解上下文。以下程序也來自本書。程序編譯運行,而不是從鍵盤輸入字符串輸入,而是獲得以下消息。問題是:爲什麼程序不會從keboard獲取字符串輸入,而是顯示長(不尋常)的錯誤消息? #define _GNU_SOURCE