我遇到了尝试将结构指针传递给将指针设置为指向多维数组的特定行的函数的问题。将结构指针传递给C中的函数以解引用数组
这是结构的声明:
typedef struct PartitionInfoStruct
{
Partition definition;
u16 start;
u16 size;
StringLiteral* desc;
} PartitionInfo;
下面是函数:
void readPartitionTable(Partition partition, PartitionInfo* partitionInfo)
{
switch(installedFlashDevice)
{
case S25FL032P:
partitionInfo = &PARTITION_TABLE_S25FL032P[partition];
break;
case SST26VF032B:
partitionInfo = &PARTITION_TABLE_SST26VF032B[partition];
break;
default:
//do nothing
break;
}
ASSERT(partitionInfo != NULL);
}
这是我正在电话:
PartitionInfo* partitionInfo = NULL;
readPartitionTable((Partition)counter, partitionInfo);
出于某种原因当致电readPartitionTable
,然后解除引用partitionInfo
后,我没有得到所需的结果 - 即ASSERT失败。
断言* *内部功能不成?你确定'counter'是'S25FL032P'或'SST26VF032B'?然而,你还有另外一个问题:你只是分配给函数内的指针的本地副本,这对调用者传入的指针没有任何影响...... – aschepler
_calling readPartitionTable,然后解除引用partitionInfo之后_你的意思是事后来自功能或断言功能失败? –
@aschepler:为什么“*'counter' *”?交换机的参数是'installedFlashDevice'。 – alk