下面是一個三重嵌套索引方案。我對指針數組的指針在註釋行上被解引用......理論上這應該給我一個指針。我從它減去一個,然後引用它,並將其重新分配給我指向指針數組的指針。但是該行爲操作數「&」提供了一個左值錯誤。更多的差錯錯誤
讓我完全清楚。我想知道爲什麼這裏發生了錯誤,並得到一個方法,用於分配指向我的幀雙指針的指針數組中前一個元素的地址。
我將只接受完整的解決方案,同時滿足這兩個條件....
#include <iostream>
typedef struct frame_s {
double ** TestArrayPointer;
} frame_t;
main() {
double * TestArray;
double ** TestPointerArray;
TestArray = new double [100];
TestPointerArray = new double * [100];
for (unsigned int Counter = 0; Counter<100; Counter++)
{
TestArray[Counter]=Counter;
TestPointerArray[Counter]=&(TestArray[Counter]);
}
frame_t Frames[10];
for (unsigned int Counter = 0; Counter<10; Counter++)
Frames[Counter].TestArrayPointer = &(TestPointerArray[Counter*10]);
//Move pointer to point at array position one back.
Frames[2].TestArrayPointer=
&(*(Frames[2].TestArrayPointer)-1); //error! here <--
//OUTPUT Values...
for (unsigned int Counter = 0; Counter<100; Counter++)
std::cout << "P: " << TestPointerArray[Counter] << " V: "
<< *(TestPointerArray[Counter]) << std::endl;
}
不應該這樣被標記爲'C++',而不是目前的'C'標籤? – pmg 2011-03-23 22:47:05
請提供實際的編譯器錯誤。 – linuxuser27 2011-03-23 22:47:16
錯誤:在一元'無效左值'&' – 2011-03-23 22:47:39