Your best friend is as in most cases your debugger. But from just looking at the code I would suspect that
nItem = m_ListCtrl.InsertItem(0, FirstName[i] + L" " + LastName[i]);
might return -1 when not successful (for whatever reason) and the following
m_ListCtrl.SetItemText(nItem, 1, Item[numItems]);
will fail because nItem is -1.