在C++中将数组变量分配给相同数据类型的指针

cod*_*ver 2 c++ arrays pointers visual-c++

在下面的C++片段中,a = b可能是分配??:

unsigned int * a;
D3DCOLOR b[16];
a=(unsigned int)b;
Run Code Online (Sandbox Code Playgroud)

这个赋值会将b数组的所有元素复制到一个?类型是否合适?

Sha*_*baz 8

首先,应该是:

a = (unsigned int *)b; // note the *
Run Code Online (Sandbox Code Playgroud)

更重要的是,这只是a 指向内容b,而不是复制它.如果要复制数组,则必须显式执行,例如使用for循环,或者std::copy,如果您不想使用类和东西.

旁注:要复制到a,你需要记忆a!您可以在堆栈上执行此操作:

unsigned int a[16]; // 16 is an example
Run Code Online (Sandbox Code Playgroud)

或动态的(例如new).

  • 使用`std :: copy`复制对象,无论你是否"使用类和东西". (2认同)