c - C : 我可以 Snprintf(buffer,buffersize,buffer,..) 吗?
问题描述
我有一个像这样托管我的“html页面”的大结构:
char * HTML_PAGES_ARRAY[n];
例如,我填写了一个页面,例如:
HTML_PAGES_ARRAY[0] = "<h1> Hello %s <h/1>\0"
现在,在我的子程序中,我正在调用一个函数,该函数必须将数组发送回主程序才能将数组发送回客户端。
所以我必须模拟流,因为我所有的 html 页面可能不适合数组。此外,如您所见,我希望使用可变参数自定义 html 页面。
我想分配尽可能少的内存。(嵌入式设备)
这是我想出的
#define DEFAULT_BUFLEN 2000
char* str= malloc(sizeof(DEFAULT_BUFLEN));
memset(str, '\0', sizeof(DEFAULT_BUFLEN));
snprintf(str, strlen(HTML_PAGES_ARRAY[0]), HTML_PAGES_ARRAY[0], value1);
//answer being the first buffer I talked about, simulating streaming, to send it back to the main program
strcpy(answer, str+(*count-1)*(answerSize-1));
//count being a parameter (an integer to parse my html page), answerSize being the size of my stream buffer answer also placed as parameter
它实际上工作正常,但我不想分配那个 str 缓冲区。
有没有办法不这样做,而是使用snprintf
相同的缓冲区(例如:)snprintf(buffer,buffersize,buffer,...)
?
或者也许还有其他想法?
解决方案
推荐阅读
- amazon-web-services - SaaS 客户的自定义域名
- ckeditor4.x - ckeditor语法上的JS控制台错误
- java - ProjectManager.getDefault().findProject 多次尝试后无法正常工作
- node.js - 错误:将循环结构转换为 JSON --> 从具有构造函数“拓扑”的对象开始 | 属性 's' -> 带有 .... 在 Nodejs Express 中的对象
- javascript - 如何有效地查询大字段数组的对象?
- javascript - 我的用于检测明/暗模式的 JS 无法正常工作
- multithreading - grpc 客户端使用异步回调需要锁定并等待 std::condition_variable
- javascript - 提交表单时setTimeout函数在iphone Ios14中不起作用
- stripe-payments - MERN 堆栈开发 - StripeAuthenticationError
- linux - 如何安装 kernel-devel 和 kernel-headers mathching 5.x 内核?