[英]unlimited size String buffer in c
我正在創建一個“字符串”
char buffer[BUFFER_SIZE]
但是,當它滿了時,我想將其連接到一個預先存在的字符串上,但是它需要具有無限的長度,並重復此過程,直到我讀取了所有數據。
關於如何執行此操作的任何想法?
您所描述的是realloc
的替代定義。
我過去曾使用過open_memstream來實現這一點。
此函數打開用於寫入緩沖區的流。 使用malloc動態分配緩沖區並根據需要增加緩沖區。 關閉流后,您有責任使用free或realloc清理此緩沖區。
https://www.gnu.org/software/libc/manual/html_node/String-Streams.html
#include <stdio.h>
int
main (void)
{
char *bp;
size_t size;
FILE *stream;
stream = open_memstream (&bp, &size);
fprintf (stream, "hello");
fflush (stream);
printf ("buf = `%s', size = %zu\n", bp, size);
fprintf (stream, ", world");
fclose (stream);
printf ("buf = `%s', size = %zu\n", bp, size);
return 0;
}
你可以嘗試使用realloc
char *temp = NULL;
char *buffer = (char*) realloc (temp, BUFFER_SIZE*sizeof(char));
您將根據BUFFER_SIZE
獲得動態內存量
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.