代码拉取完成,页面将自动刷新
#include "rvcc.h"
// 压入字符串数组
void strArrayPush(StringArray *Arr, char *S) {
// 如果为空,没有数据
if (!Arr->Data) {
// 开辟8个字符串的位置
Arr->Data = calloc(8, sizeof(char *));
// 将容量设为8
Arr->Capacity = 8;
}
// 如果存满了,开辟一倍的空间
if (Arr->Capacity == Arr->Len) {
// 再开辟当前容量一倍的空间
Arr->Data = realloc(Arr->Data, sizeof(char *) * Arr->Capacity * 2);
// 容量翻倍
Arr->Capacity *= 2;
// 清空新开辟的空间
for (int I = Arr->Len; I < Arr->Capacity; I++)
Arr->Data[I] = NULL;
}
// 存入字符串
Arr->Data[Arr->Len++] = S;
}
// 格式化后返回字符串
char *format(char *Fmt, ...) {
char *Buf;
size_t BufLen;
// 将字符串对应的内存作为I/O流
FILE *Out = open_memstream(&Buf, &BufLen);
va_list VA;
va_start(VA, Fmt);
// 向流中写入数据
vfprintf(Out, Fmt, VA);
va_end(VA);
fclose(Out);
return Buf;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。