new内存后delete崩溃,简单的有关问题求解释!

new内存后delete崩溃,简单的问题求解释!!!!!!!!!!!!
int csize = 10;
char *data = new char[csize];
memset(data,0,strlen(data));
for(int i = 0;i<csize-1;i++)
{
data[i] = '2';
}
delete data;
这段简单的代码在我编译器上执行为啥报错,错误如图:
new内存后delete崩溃,简单的有关问题求解释!
------解决方案--------------------
问题出在memset(data,0,strlen(data));这里吧。
memset(data,0,csize)应该就OK了。