c需要基本结构帮助

kev*_*670 0 c struct

我想struct使用指针将值复制到一个.

我不断从这一小段代码中获得分段错误.

struct companyInfo
{
    double sharePrice;
    char companyName[100];
}; 

int main()
{
    struct companyInfo * pdata = NULL;
    strcpy(pdata->companyName, "sdfsd");

    exit(0);
}
Run Code Online (Sandbox Code Playgroud)

Gav*_*n H 6

您没有为结构分配任何空间,只是一个空指针.

struct companyInfo * pdata = NULL; 
pdata = calloc( 1, sizeof(struct companyInfo) ); 
if( pdata != NULL )
    {
    strncpy(pdata->companyName, "sdfsd", sizeof(pdata->companyName) - 1);
    }
Run Code Online (Sandbox Code Playgroud)

注意:calloc()也会为你清空内存,而不是malloc()只分配内存.此外,您应检查这些函数的返回以确保指针不为NULL.

重要提示:需要显式释放使用malloc(),calloc(),ex ..分配的任何内存.

例:

if( pdata != NULL )
    {
    free( pdata );
    }
exit(0);
Run Code Online (Sandbox Code Playgroud)

  • +1.但请提及"免费"这个的必要性.还应该使用`strncpy`. (3认同)
  • @ user967797没问题.如果这回答了您的问题,您可以单击答案上的复选标记,以便其他人将此问题视为已回答的问题以及适合您的解决方案. (2认同)