sprintf()会造成越界,在释放内存,做delete时会报错误,使用的时候要注意。
例如:
先建一字符数组,并给其分配内存
char *tmp = new char[255];
memset(tmp,'/0',255);
使用sprintf(), 将char *data 拷贝到tmp, data 长度超过255:
sprintf(tmp,"data=%s", data);
则在delete[] tmp 时,产生如下错误:
sprintf()会造成越界,在释放内存,做delete时会报错误,使用的时候要注意。
例如:
先建一字符数组,并给其分配内存
char *tmp = new char[255];
memset(tmp,'/0',255);
使用sprintf(), 将char *data 拷贝到tmp, data 长度超过255:
sprintf(tmp,"data=%s", data);
则在delete[] tmp 时,产生如下错误: