结构初始化问题?

Cha*_*pps 3 c memory malloc struct

我正在使用这样的结构:

define struct _Fragment{
     int a;
     char *seq;
}Fragment;
Run Code Online (Sandbox Code Playgroud)

我想初始化struct,并使用malloc()方法返回这样的动态内存

Fragment *frag=malloc(10*sizeof(Fragment));
Run Code Online (Sandbox Code Playgroud)

然后我会像这样使用frag指针:

frag->seq="01001";
Run Code Online (Sandbox Code Playgroud)

然后当我返回大量片段时会出现问题.错误消息说(使用valgrind工具):

Uninitialised value was created by a heap allocation
Run Code Online (Sandbox Code Playgroud)

谁能告诉我如何处理它.谢谢!

Dav*_*ble 6

我不确定你在这里有一个真正的问题,但对于正确的礼仪,你的分配将是:

Fragment *frag=malloc(10*sizeof(Fragment));
if (frag) memset(frag,0,10*sizeof(Fragment));
Run Code Online (Sandbox Code Playgroud)

  • 使用calloc()更容易 (12认同)