我正在写一个使用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