【发布时间】:2015-09-11 18:48:39
【问题描述】:
作为学校作业的一部分,我得到了一个结构,其中有一个指向另一个结构的双指针。我将需要能够访问函数内嵌套结构的成员,但这样做没有运气。
这是我得到的代码
#include<stdio.h>
#include <stdlib.h>
/*Given code, do not change */
typedef struct
{
char* ID;
char* PassWord;
}Account, *pAccount, **ppAccount;
typedef struct
{
unsigned int numAccounts;
ppAccount accounts;
}FleaBay,*pFleaBay;
void FleaBayInit(pFleaBay); /* Initialise the FleaBay instance */
int main(void)
{
FleaBay e;
FleaBayInit(&e); /* Call to the function */
return 0;
}
/* end of given code */
这是我的尝试:
void FleaBayInit(FleaBay *pFleaBay){ /* Initialise the FleaBay instance */
Account ac1 = {"test1", "test2"}, *pac1 = &ac1;
pFleaBay ->numAccounts = 0;
pFleaBay ->accounts = &pac1;
}
访问非嵌套struct 中的成员没有问题,但我不知道如何访问嵌套Account 结构的成员。以为我可能需要先创建一个Account 对象,指向它,然后将指针的值分配给pFleaBay 中的accounts 成员,但是当我使用printf("%s",pFleaBay->accounts); 进行测试时,我得到了一些随机字符。
【问题讨论】:
-
你的程序的其他部分是否有
malloc内存? -
不,不在任何地方做 malloc。程序的其他部分不相关。
-
看起来
ppAccount应该是一个数组。 -
你能详细说明一下吗?
-
@Jason 指针数组?
标签: c visual-studio-2012