int *data;for (int index = 0; index < 10; index++)
{
 data[index] = index;
}

解决方案 »

  1.   

    没分配空间
    int   *data; 
    data=new int[11]
    for(index   =   0;index <=   10;index++) 

          data[index]   =   index; } 
    delete []data;OR
    int   *data; 
    data=new int[10]
    for(index   =   0;index <   10;index++) 

          data[index]   =   index; } 
    delete []data;
      

  2.   

    静态数组:int data[10];for (int index = 0; index < 10; index++)
    {
       data[index] = index;
    }
    动态数组:
    就是ls的... 没仔细看..写错了!
    如果是初始化最好不用for循环了...int *data;data = new int[10];memset(data, 0, sizeof(int) * 10); 用完释放..!
    if (data)
    {
     delete[]data;   //或delete data;对于内部类型来说的
     data = NULL;
    }
    如果是类的成员变量
    直接用初始化列表, 那会更好...!
      

  3.   

    int   *data; 
    data   =   new   int[10]; 
    memset(data,   0,   sizeof(int)   *   10);   这样用赋0没问题,但是用 memset(data,   0,   sizeof(int)   *   10);   结果就不正确,所以对于不是 char类型的指针就不要这样赋值.
      

  4.   

    int   *data; 
    data   =   new   int[10]; 
    memset(data,   0,   sizeof(int)   *   10);   =======================》
    int   *data; 
    data   =   new   int[10]; 
    memset(data,   0,   sizeof(int*)   *   10);   
      

  5.   

    1. 老大bobob:
    memset(data, 0, sizeof(int) * 10);  会有问题...?2.weiyongzhao (好人):
    你理解错了吧...
    memset()可以接受任意类型的指针//参数是void*型的它是按字节赋值的, 可没说参数只能是char*型的..!
      

  6.   

    int   *data = 一个地址;   //这个地址一定要啊,不然怎么知道数据在哪儿 
    for(index   =   0;index <=   10;index++) 

          data[index]   =   index; //这样写数据是不可以的,要写数据就必须先给他分配一块内存,如果只给一个地                    址的话,系统认为只有一个数据哦,写写data[0]=xxx;还是可以的.
                      //读数据就没问题了
                      //cout<<data[index]<<endl;
      

  7.   

    楼主:那样使用是不行的,一运行就会access violation。
    int   *data; for(index   =   0;index <=   10;index++) 

          data[index]   =   index; } 
    data 没赋值,他的值不确定,是乱七八糟的值,data[0]就是 *data,对不存在的内存操作,咋个正确?
    可以这样做: int   *data; 

    for(int index   =   0;index <=   10;index++) 

    *(int*)((&data)+index)   =   index;