了解C中的StrBuff
|
我需要知道这个StrBuff结构是否应该像数组一样运行。我看了看,说实话不能仅仅由于指针语法而知道-看起来像一个数组可以工作,而数组不能工作。
我看到在第二种方法中,使用了malloc(),所以我猜buf-str uChar应该是一个数组。
编码解码器:
typedef struct {
unsigned char *str;
unsigned int len;
} StrBuf;
static StrBuf *
strbuf_new ()
{
StrBuf *buf;
buf = (StrBuf *) calloc (sizeof (StrBuf), 1);
buf->str = (unsigned char *) strdup (\"\");
return buf;
}
static void
strbuf_append (StrBuf *buf, unsigned char *data, int len)
{
int offset;
if (len <= -1)
len = strlen ((char *) data);
offset = buf->len;
buf->len += len;
buf->str = (unsigned char *) realloc (buf->str, buf->len + 1);
memcpy (buf->str + offset, data, len);
buf->str[buf->len] = \'\\0\';
}
因此,从这些方法来看,我想对于那里的任何C / C ++退伍军人来说都是小菜一碟。
编辑:
我的目标是将一个应用程序(在此处使用此代码)转换为Java端口,但是我对应该如何做感到非常困惑。我已经(在大部分情况下)在Java中做了相当大的事情,只是这次只是使用byte []数组,这看待未签名的字符应该等效于Java中的字节。
没有找到相关结果
已邀请:
1 个回复
闪脖
使用StrBuf之类的结构,当提供给定长度的字符串buf时,您可以分配所需的内存: