#include <iostream>
#include <windows.h>using namespace std;void main()
{
DWORD *t[]; t = new DWORD(12); return;
}这样做有问题吗?
#include <windows.h>using namespace std;void main()
{
DWORD *t[]; t = new DWORD(12); return;
}这样做有问题吗?
{
DWORD *t;t = new DWORD[12];
return;
}
{
CtrlP *CtrlDes[ DesTableMax ];
BYTE Pointer;
}; struct fTable
{
sTable *scdTable;
DWORD Pointer;
DWORD dNumCtrlTableSize;
}; return ControlDes.scdTable[ ID / ControlDes.dNumCtrlTableSize ]->CtrlDes[ ID % ControlDes.dNumCtrlTableSize - 1 ]->Location;
如果不用*scdTable[]的话就出错,用了也是错
检查ControlDes.dNumCtrlTableSize是否为零?
ControlDes.scdTable[ 0~ ControlDes.dNumCtrlTableSize-1] 对应的CtrlDes都要new一遍,这才能使用
typedef unsigned char BYTE;#define DesTableMax 3
struct CtrlP{
int Location;
};struct sTable //second level table
{
CtrlP *CtrlDes[ DesTableMax ];
BYTE Pointer;
};struct fTable
{
sTable *scdTable;
DWORD Pointer;
DWORD dNumCtrlTableSize;
};
fTable ControlDes;
ControlDes.scdTable = new sTable[10];
for (int i=0; i<10;i++)
for (int j=0; j<DesTableMax; j++)
ControlDes.scdTable[i].CtrlDes[j] = new CtrlP; ControlDes.scdTable[ 1 ].CtrlDes[ 1 ]->Location = 10;