我会试着简单地问一下。我有一个嵌套的结构,第一个是文档,第二个是文件夹,应该包含几个文档,这样:
typedef struct document
{
char *docName;
int linesAmountInDoc;
char **docContent;
}Document;
typedef struct folder
{
char folderName[20];
struct document *docs;
}Folder;
Asumming我已经有了几个文件名如:doc1,doc2等。我怎样才能将那些文件名分配到文件夹? 我尝试过这样的事情:
int i;
Folder *fold=(Folder *)malloc(sizeof(struct folder));
for(i=0;i<5;i++)
strcpy(fold->docs[i].docName, copyDoc->docName); //access violation
但它不起作用。我收到了邮件访问冲突。有什么建议吗?
答案 0 :(得分:0)
您需要将内存分配给docs ....和docname - 为什么不将docname定义为char数组而不是结构中的指针?
updated.posts = updated.posts.map(function(post){return post._id});
updated.save(...
但是根据您所做的评论---是否值得检查您是否已声明了5个(或更多)文件
答案 1 :(得分:0)
这是因为docContent
即使在null
Folder *fold=(Folder *)malloc(sizeof(struct folder));
有几种方法可以解决这个问题,最简单的方法是:
Folder *fold = (Folder *)malloc(sizeof(struct folder));
fold->docs = malloc(sizeof(struct document));
fold->docs[0] = copyDoc;
非常脏的修复,没有使用数组。
答案 2 :(得分:0)
我找到了解决方案。通过以下方式使用Function之外的简单赋值: numOfDocuments + = 1; copyDoc = CopyDocument(doc,numOfDocuments); 资料夹,&GT;文档[numOfDocuments] .docName = copyDoc-&GT; DOCNAME; 哪个 copyDoc 是函数的返回结果,可以在Pointer的数组中包含任何文档名称(作为嵌套结构)。
无论如何,感谢每一个试图帮助我的人。