int pkg_buf(char *pkg, char *buf, int size) { int size_o = get_size(pkg); pkg = realloc(pkg, size_o + size); memcpy(pkg + size_o, buf, size); ... return (0); }
上面这段代码是有问题的,问题就出在 realloc上,
应该改成:
int pkg_buf(char **ppkg, char *buf, int size) { int size_o = get_size(pkg); *ppkg = realloc(pkg, size_o + size); memcpy(*ppkg + size_o, buf, size); ... return (0); }