我有一个固定大小的数组无效**参数声明:称为具有固定阵列值
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