0

我在使用 struct 指针时遇到问题....下面是我的代码中的两个示例,它们基本上做同样的事情,除了 dsp 不是指针并且 InMemory[Idx] 是指针,如何在指针情况下使用 memcpy?

my_struct* InMemory[SIZE]

//works prints: tmp3:local_file (file name)

memcpy(dsp.result.list[i].owner_name,req.file_name,256);
char tmp3[256];
memcpy(tmp3,dsp.result.list[i].owner_name,256);
printf("tmp3:%s\n",tmp3);

//doesn't work, prints: tmp:_____<---nothing! ??
//I am trying to copy the result from above into a field of the struct pointer array 
char tmp2[256];
memcpy(InMemory[Idx]->filename,dsp.result.list[i].owner_name,256);
memcpy(tmp2,InMemory[Idx]->filename,256);
printf("tmp:%s\n",tmp2);
4

1 回答 1

1

从您的代码中,您尚未分配 InMemory 的成员元素

for (i=0;i<SIZE;i++)
{ 
  // allocate elements here
  InMemory[i]->filename = malloc(....)
  // other allocations
}

// now use memcpy
于 2012-11-28T01:19:24.077 回答