int *pi = new int[100];
for(int i = 0; i < 100; i++)
{
   pi[i] = i; // 这样可以用,但不知是否安全;
}

解决方案 »

  1.   

    完全可以,数组名实质就是一指针,下面的用法也可以
    int pi[100];
    for( int i = 0; i < 100; i++ )
    {
        *(pi+i) = i;
    }
      

  2.   

    组数名和指针有相同点,它们都是指针,只不过数组名是常值指罢,
    即: 
        int a[100],*p=new int[100];
        a=p;//错,因a是常值,不能重赋值
        p=a;//ok   ,访问数组元素和指针所指的内存都可用两种方法,
    即:
       a[i] <==> *(a+i)
       *(p+i) <==> p[i]
    因此楼主的用法决对no....problem