I don't know why occurred access error

Hello~
I don’t know why occurred access error

** void ASEObject::Render()
{

m_pd3dDevice->DrawPrimitive(D3DPT_TRIANGLELIST, 0, m_dwNumVertex[0]/3;
}**

#pragma once
#include "stdafx.h"

struct CUSTOMVERTEX
{
	D3DXVECTOR3 position;
	//D3DCOLOR color;
	D3DXVECTOR3 normal;
	FLOAT tu, tv;
};

struct CUSTOM_INDEX
{
	DWORD _0, _1, _2;
};

struct CUSTOMDATA
{
	CUSTOMVERTEX* pDstVertices;
};
class ASEObject
{
public:
	ASEObject(void);
	~ASEObject(void);

	BOOL Init(LPDIRECT3DDEVICE9 &pd3dDevice);
	void Clear();
	void Update();
	void Render();
	void SetupLights(D3DLIGHT9 pd3dLight);
	void SetupMaterial(D3DMATERIAL9 pd3dMaterial, int MaterialCnt);

	bool SetVertexData(DWORD dwNumVertexData, D3DXVECTOR3* pVertexData, DWORD dwNumFaceData, CUSTOM_INDEX* pFaceData,
		DWORD dwNumTVertexData, D3DXVECTOR3* pTVertexData, DWORD dwNumTFaceData, CUSTOM_INDEX* pTFaceData, D3DXVECTOR3* pVertexNormal, D3DXVECTOR3* pFaceNormal, int nIndexNum, int nObj);
	bool SetTextureData(const _TCHAR* pszFilename, int dwIndex);

private:
	LPDIRECT3DDEVICE9 m_pd3dDevice;
	LPDIRECT3DVERTEXBUFFER9 m_pVB;
	LPDIRECT3DTEXTURE9 m_pTexture;

	D3DXMATRIX m_matWorld;

	D3DXVECTOR3 vecDir;
	D3DLIGHT9 m_pd3dLight;
	D3DMATERIAL9 m_pd3dMaterial;

	DWORD* m_dwNumVertex;
	DWORD m_dwNumTVertex;
	DWORD m_dwIndex;
	int m_nSubMaterialCnt;
};

#include "ASEObject.h"

static int j = 0;

ASEObject::ASEObject(void)
{
	m_dwNumVertex = new DWORD[3];
	ZeroMemory(m_dwNumVertex, sizeof(DWORD) * 3);
}

ASEObject::~ASEObject(void)
{
	delete[] m_dwNumVertex;
}

BOOL ASEObject::Init(LPDIRECT3DDEVICE9 &pd3dDevice)
{
	m_pd3dDevice = pd3dDevice;
	if (m_pd3dDevice == NULL)
		return FALSE;
	return TRUE;
}
void ASEObject::Clear()
{
	if (m_pVB != NULL)
	{
		m_pVB->Release();
		m_pVB = NULL;
	}
	
	if (m_pTexture != NULL)
	{
		m_pTexture->Release();
		m_pTexture = NULL;
	}

}

void ASEObject::SetupLights(D3DLIGHT9 pd3dLight)
{
	m_pd3dLight = pd3dLight;
	vecDir = D3DXVECTOR3(-10.0f, -170.0f, 1000.0f);
	D3DXVec3Normalize((D3DXVECTOR3*)&m_pd3dLight.Direction, &vecDir);
	m_pd3dLight.Range = 1000.0f;
	m_pd3dLight.Diffuse.a = 1.0f;
	m_pd3dDevice->SetLight(0, &m_pd3dLight);
	m_pd3dDevice->LightEnable(0, TRUE);
	m_pd3dDevice->SetRenderState(D3DRS_LIGHTING, FALSE);

	m_pd3dDevice->SetRenderState(D3DRS_AMBIENT, 0x00202020);

}

void ASEObject::SetupMaterial(D3DMATERIAL9 d3dMaterial, int MaterialCnt)
{
	m_pd3dMaterial = d3dMaterial;
	m_nSubMaterialCnt = MaterialCnt;
	for (int i = 0; i < m_nSubMaterialCnt; i++)
	{
		m_pd3dMaterial.Ambient.a = 1.0f;
		m_pd3dDevice->SetMaterial(&m_pd3dMaterial);
	}
}
void ASEObject::Update()
{
	D3DXMATRIXA16 matWorld;
	D3DXMatrixIdentity(&matWorld);
	D3DXMatrixRotationY(&matWorld, GetTickCount() / 1000.0f);
	m_pd3dDevice->SetTransform(D3DTS_WORLD, &matWorld);

	D3DXVECTOR3 vEyePt(0.0f, 150.0f, -100.0f);
	D3DXVECTOR3 vLookatPt(0.0f, 0.0f, 0.0f);
	D3DXVECTOR3 vUpVec(0.0f, 1.0f, 0.0f);
	D3DXMATRIXA16 matView;
	D3DXMatrixLookAtLH(&matView, &vEyePt, &vLookatPt, &vUpVec);
	m_pd3dDevice->SetTransform(D3DTS_VIEW, &matView);

	D3DXMATRIXA16 matProj;
	D3DXMatrixPerspectiveFovLH(&matProj, D3DX_PI / 4, 1.0f, 1.0f, 1000.0f);
	m_pd3dDevice->SetTransform(D3DTS_PROJECTION, &matProj);
}

void ASEObject::Render()
{
		m_pd3dDevice->SetTexture(0, m_pTexture);
		//m_pd3dDevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
		//m_pd3dDevice->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
		//m_pd3dDevice->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
		//m_pd3dDevice->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_DISABLE);

	//	SetupLights(m_pd3dLight);
		SetupMaterial(m_pd3dMaterial, m_nSubMaterialCnt);
		m_pd3dDevice->SetStreamSource(0, m_pVB, 0, sizeof(CUSTOMVERTEX));
		m_pd3dDevice->SetFVF(D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_TEX1);
		**m_pd3dDevice->DrawPrimitive(D3DPT_TRIANGLELIST, 0, m_dwNumVertex[0]/3);**
}

bool ASEObject::SetTextureData(const _TCHAR* pszFilename, int dwIndex)
{
	m_dwIndex = dwIndex;
		if (FAILED(D3DXCreateTextureFromFile(m_pd3dDevice, pszFilename, &m_pTexture)))
			return E_FAIL;

	return TRUE;
}

bool ASEObject::SetVertexData(DWORD dwNumVertexData, D3DXVECTOR3* pVertexData,
	DWORD dwNumFaceData, CUSTOM_INDEX* pFaceData,
	DWORD dwNumTVertexData, D3DXVECTOR3* pTVertexData,
	DWORD dwNumTFaceData, CUSTOM_INDEX* pTFaceData,
	D3DXVECTOR3* pVertexNormal, D3DXVECTOR3* pFaceNormal, int nIndexNum, int nObj)
{
	m_dwNumVertex[nIndexNum] = dwNumFaceData * 3;
	if (FAILED(m_pd3dDevice->CreateVertexBuffer(m_dwNumVertex[nIndexNum] * sizeof(CUSTOMVERTEX), 0, D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_TEX1, D3DPOOL_DEFAULT, &m_pVB, NULL)))
	{
		return E_FAIL;
	}
//	CUSTOMVERTEX* pDstVertices;
	CUSTOMDATA* pDstData;
	pDstData = new CUSTOMDATA[nObj];
	ZeroMemory(pDstData, sizeof(CUSTOMDATA)*nObj);

	if (FAILED(m_pVB->Lock(0, m_dwNumVertex[nIndexNum] * sizeof(CUSTOMVERTEX), (void**)&pDstData[nIndexNum].pDstVertices, 0)))
	{
		return E_FAIL;
	}

	for (DWORD i = 0; i < dwNumFaceData; ++i)
	{
		pDstData[nIndexNum].pDstVertices[i * 3].position.x = pVertexData[pFaceData[i]._0].x;
		pDstData[nIndexNum].pDstVertices[i * 3].position.y = pVertexData[pFaceData[i]._0].y;
		pDstData[nIndexNum].pDstVertices[i * 3].position.z = pVertexData[pFaceData[i]._0].z;

		pDstData[nIndexNum].pDstVertices[i * 3 + 1].position.x = pVertexData[pFaceData[i]._1].x;
		pDstData[nIndexNum].pDstVertices[i * 3 + 1].position.y = pVertexData[pFaceData[i]._1].y;
		pDstData[nIndexNum].pDstVertices[i * 3 + 1].position.z = pVertexData[pFaceData[i]._1].z;

		pDstData[nIndexNum].pDstVertices[i * 3 + 2].position.x = pVertexData[pFaceData[i]._2].x;
		pDstData[nIndexNum].pDstVertices[i * 3 + 2].position.y = pVertexData[pFaceData[i]._2].y;
		pDstData[nIndexNum].pDstVertices[i * 3 + 2].position.z = pVertexData[pFaceData[i]._2].z;

		pDstData[nIndexNum].pDstVertices[i * 3].tu = pTVertexData[pTFaceData[i]._0].x;
		pDstData[nIndexNum].pDstVertices[i * 3].tv = pTVertexData[pTFaceData[i]._0].y;

		pDstData[nIndexNum].pDstVertices[i * 3 + 1].tu = pTVertexData[pTFaceData[i]._1].x;
		pDstData[nIndexNum].pDstVertices[i * 3 + 1].tv = pTVertexData[pTFaceData[i]._1].y;

		pDstData[nIndexNum].pDstVertices[i * 3 + 2].tu = pTVertexData[pTFaceData[i]._2].x;
		pDstData[nIndexNum].pDstVertices[i * 3 + 2].tv = pTVertexData[pTFaceData[i]._2].y;
	}

	m_pVB->Unlock();

	delete[] pDstData;
	return TRUE;
}

Let me know what should I do, and if you want I send the code to your e-mail.