我想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)
您没有为结构分配任何空间,只是一个空指针.
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)