这似乎没有任何问题运行,但我在想当它返回时,buff
可能会自动被释放,这又会在*string
我下次分配时释放并导致问题,并且内存被覆盖(或更糟,等等)。我不想通过反复试验进行测试,因为到目前为止我的测试可能很幸运。我做错了吗?
void strCat1000(char *concatDest, char *format, ...)
{
char buff[1000];
va_list arg_ptr;
va_start(arg_ptr, format);
vsnprintf(buff, sizeof(buff), format, arg_ptr);
va_end(arg_ptr);
free(concatDest);
concatDest=buff;
}
更简洁地说,concatDest 是否指向此函数返回后释放的内存?