我有一個固定大小的數組無效**參數聲明:稱爲具有固定陣列值
int vals[25];
而且我想在陣列發送到將分配丘壑的值的函數:
bool FetchValueArray(char* source, char* name, char* typeFormat, int count, void** destination)
{
int i;
char *t;
t=strstr(source,name);
if (t)
if (destination != NULL)
{
for (i = 0;i < count;i++)
sscanf(t,typeFormat,destination[i]);
return true;
}
return false;
}
這將基本上讀取特定搜索字符串後的所有內容。例如:
FetchValueArray(source,"CONFIG=","%d",15,vals);
其中「CONFIG =」爲純文本格式,後跟15個製表符分隔的數值。
這裏有什麼我遠離grokking關於間接和固定的數組,因此我想知道如果一個固定大小的數組可以作爲void **參數發送(即使有跳躍信仰的數組的大小將受到尊重不同的問題)
TL;博士版本
int vals[25];
bool foo(int size,void** d);
foo(25,vals);
這是爲什麼不允許?
傳遞給函數時,數組衰減爲指針。是的,你可以把它當作'void *'。我不確定你爲什麼試圖使用'void **'來代替。 – Mahesh