我有一个这样的大型结构来托管我的“ 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,...)
)吗?
或者其他任何想法?