代码typedef struct {
JITASYA_JYUSIN_DATA JitasyaJyusinData;
char sJyusinDate[10];
char sJyusinTime[12];
char dHouseiIdo[4];
char dHouseiKeido[4];
double iDistanceLine;
double iDistanceX;
double iDistanceY;
double dSoutaiHoui;
int iZone;
long dTsusinErrCount;
}JITASYA_JYUSIN_DATA1,*pJITASYA_JYUSIN_DATA1;                
调用时
void s1(JITASYA_JYUSIN_DATA1 CacuMonit[])
{
strcpy(CacuMonit[0].dHouseiKeido,"56");
strcpy(CacuMonit[0].dHouseiIdo,"78");
strcpy(CacuMonit[1].dHouseiKeido,"bb");
strcpy(CacuMonit[1].dHouseiIdo,"445");
}void main()
{
JITASYA_JYUSIN_DATA1 CacuMonitor[2];
strcpy(CacuMonitor[0].dHouseiKeido,"12");
strcpy(CacuMonitor[0].dHouseiIdo,"fv");
strcpy(CacuMonitor[1].dHouseiKeido,"33");
strcpy(CacuMonitor[1].dHouseiIdo,"3442");
// s1(CacuMonitor);
cout<<CacuMonitor[0].dHouseiKeido<<endl
<<CacuMonitor[0].dHouseiIdo<<endl
<<CacuMonitor[1].dHouseiKeido<<endl
<<CacuMonitor[1].dHouseiIdo<<endl;}
使用s1(CacuMonitor);输出式正常的。
使用上面的代码strcpy(CacuMonitor[1].dHouseiKeido,"33");输出式空的其他的事可以的

解决方案 »

  1.   

    你这只分配了指针,没有分配内存呀,用new分配
    JITASYA_JYUSIN_DATA1* CacuMonitor=new JITASYA_JYUSIN_DATA1[2];
    delete[] CacuMonitor;
      

  2.   

    如果正确strcpy(CacuMonitor[1].dHouseiKeido,"33");
    cout<<CacuMonitor[1].dHouseiKeido<<endl;输出应该是 33
    可是输出 是 空的
    但是使用自己定义的函数s1(CacuMonitor);输出是正确的。
    问题出在哪儿,实在看不出来
      

  3.   

    strcpy(CacuMonitor[1].dHouseiIdo,"3442");
    越界了,"3442"为5个字节,直接改了dHouseiKeido
      

  4.   

    strcpy(CacuMonitor[1].dHouseiIdo,"3442");
    越界了,"3442"为5个字节,直接改了dHouseiKeido
      

  5.   

    Jarrylogin的改法试过了,还是老样子
      

  6.   

    vcmute(横秋)是对的。谢谢了。结帖给分