我正在寫一個使用C的sprintf
函數的指針。手動遞增指針
我給這個指針寫了空白字符(空格),逗號和整數。指針的分配爲4096字節。
我在寫入時手動遞增指針,但是我在格式化時遇到問題。
下面是代碼:
sprintf(result, "%d ", number);
memory += 3;
sprintf(result, "%d, ", number);
memory += 4;
OUTPUT: printf("%s", (char *)memory);
取決於發生了什麼節目我做上述下列操作之一。最初我分別使用了2和3,但是當我輸出時,這導致格式化問題與間距方式。我在網上查了一下,發現整數需要2個字節的內存,而char的佔用1個字節,因此我分別改爲3和4。 (空間(1)+整數(2))= 3和(空間(1)+逗號(1)+整數(2))= 4。然而,當我使用這些我失去了我的一些輸出數據 - 將其縮短。再次,我已經分配了4096字節的指針,這應該是足夠的輸出正確。
也許我正在錯誤地增加指針或將其錯誤地打印出來?
也許'momory + = sprintf(result + memory,out_format,number); ... printf(「%s」,結果);' – BLUEPIXY
+1,因爲你發佈了與我剛剛接受的答案相同的東西,稍後一點 – ZAX