【发布时间】:2012-09-04 07:57:12
【问题描述】:
我为一个结构分配了 5 个位置——其中每个 CELL 都是一个指向该结构的指针。现在我希望第二个单元格指向我的结构,但我得到一个错误:表达式必须是一个可修改的值。 我明白我正在重新定位我的指针,但我不明白如何在不复制所有值的情况下修复它。
这是我正在使用的示例:(相关内容)
typedef struct childrenArray
{
PXML_ELEMENT childrenArray;
UINT32 numOfChildren;
UINT32 maxNumOfChildren;
}CHILDREN_ARR,*PCHILDREN_ARR;
typedef struct xml_Element
{
PDATA_ELEMENT pData;
PCHILDREN_ARR pChildrenArr;
PXML_ELEMENT pParent;
PATTR_ARR pAttributeArr;
UINT32 depth;
};
当我创建子数组时: 代码是:
PCHILDREN_ARR retArr;
retArr->childrenArray = (PXML_ELEMENT)Calloc(retArr->maxNumOfChildren ,sizeof(XML_ELEMENT)); /*my max is 5 .. */
现在我遇到了问题: 我想使用这个功能:
XML_STATUS xml_AddChildToEndArray(PXML_ELEMENT pChild , PXML_ELEMENT pParent)
{
pParent->pChildrenArr->childrenArray + pParent->pChildrenArr->numOfChildren = pChild;
}
我得到了错误...我能解释为什么它是错误的吗 我该如何解决?
我不想:
'currentCell ->name = pChild-> name'
复制所有值...只是为了让它指向孩子
谢谢!
【问题讨论】:
-
你说的内容等同于
n + 2 = 5;。这是没有意义的。你的意思是n = 5 - 2;?
标签: c pointers data-structures xml-parsing