I think the map you used is wrong,look look the code below,wish wish to help you.
if(FAILED(pCtx->Map(m_pvertexbuffer[0],0,D3D11_MAP::D3D11_MAP_WRITE_DISCARD,0,&Mapped)))
{
PostQuitMessage(0);
}
VERTEX_STRUCT ptr=(VERTEX_STRUCT)Mapped.pData;
for(int i=0;i<LENGTH;i++)
{
x=rcos(23.142i/length);
y=rsin(23.142i/length);
ptr[i].pos = XMFLOAT3(x,y,0); // Bottom left.
//srand((int)time(0));
srand((GetTickCount()%65536));
ptr[i].color.x=(float(rand())/RAND_MAX);
srand((GetTickCount()%65536)-1000);
ptr[i].color.y=(float(rand())/RAND_MAX);
srand((GetTickCount()%65536)-2000);
ptr[i].color.z=(float(rand())/RAND_MAX);
}
pCtx->Unmap(m_pvertexbuffer[0],0);
if(FAILED(pCtx->Map(m_pvertexbuffer[0],0,D3D11_MAP::D3D11_MAP_WRITE_DISCARD,0,&Mapped)))
{
PostQuitMessage(0);
}
VERTEX_STRUCT *ptr=(VERTEX_STRUCT*)Mapped.pData;
for(int i=0;i<LENGTH;i++)
{
x=r*cos(2*3.142*i/length);
y=r*sin(2*3.142*i/length);
ptr[i].pos = XMFLOAT3(x,y,0); // Bottom left.
//srand((int)time(0));
srand((GetTickCount()%65536));
ptr[i].color.x=(float(rand())/RAND_MAX);
srand((GetTickCount()%65536)-1000);
ptr[i].color.y=(float(rand())/RAND_MAX);
srand((GetTickCount()%65536)-2000);
ptr[i].color.z=(float(rand())/RAND_MAX);
}
pCtx->Unmap(m_pvertexbuffer[0],0);