if(!strbuff->value)
return -1;
- memset(strbuff->value, 0, strbuff->size);
+ /* initialize to empty */
+ strbuff->value[0] = '\0';
return 0;
}
strbuff->value = realloc(strbuff->value, strbuff->size);
if(!strbuff->value)
return -1;
-
- memset(strbuff->value + strbuff->length + size, 0,
- strbuff->size - strbuff->length - size);
}
memcpy(strbuff->value + strbuff->length, data, size);
strbuff->length += size;
+ strbuff->value[strbuff->length] = '\0';
return 0;
}
typedef struct {
char *value;
- int length;
- int size;
+ int length; /* bytes used */
+ int size; /* bytes allocated */
} strbuffer_t;
int strbuffer_init(strbuffer_t *strbuff);