我對C/C++中的數組和指針有一個基本的問題。指針數組作爲函數參數
說我有:
Foo* fooPtrArray[4];
如何將fooPtrArray
傳遞到函數? 我曾嘗試過:
int getResult(Foo** fooPtrArray){} // failed
int getResult(Foo* fooPtrArray[]){} // failed
我該如何處理指針數組?
編輯:我曾經以爲的錯誤味精是從傳遞錯誤的指針數組,但是從所有的答覆,我意識到這是別的東西......(指針賦值)
Error msg:
Description Resource Path Location Type incompatible types in assignment of
`Foo**' to `Foo*[4]' tryPointers.cpp tryPointers line 21 C/C++ Problem
我不不太明白爲什麼它說:Foo * *到Foo * [4]。如果作爲函數參數互相交換,爲什麼在賦值期間,它給我編譯錯誤?
我試着用最少的代碼複製的錯誤味精如下:
#include <iostream>
using namespace std;
struct Foo
{
int id;
};
void getResult(Foo** fooPtrArray)
{
cout << "I am in getResult" << endl;
Foo* fooPtrArray1[4];
fooPtrArray1 = fooPtrArray;
}
int main()
{
Foo* fooPtrArray[4];
getResult(fooPtrArray);
}
定義「失敗」。在編譯時失敗?在運行時?如何,完全(或隱約地,我不介意)? – 2009-11-12 11:27:52
如上所示,我附上我的修剪過的代碼,這是編譯時錯誤。錯誤來自函數void getResult(Foo * * fooPtrArray) – Lily 2009-11-12 17:31:26