我想使用指针将值复制到struct
中。
我一直从这段代码中得到分段错误。
struct companyInfo
{
double sharePrice;
char companyName[100];
};
int main()
{
struct companyInfo * pdata = NULL;
strcpy(pdata->companyName, "sdfsd");
exit(0);
}
最佳答案
您没有为结构分配任何空间,只是一个空指针。
struct companyInfo * pdata = NULL;
pdata = calloc( 1, sizeof(struct companyInfo) );
if( pdata != NULL )
{
strncpy(pdata->companyName, "sdfsd", sizeof(pdata->companyName) - 1);
}
注意:
calloc()
也会为您清空内存,而不是只分配内存。此外,您应该检查这些函数的返回,以确保指针不为空。重要提示:使用malloc()、calloc()、例如..分配的任何内存需要显式释放。
例子:
if( pdata != NULL )
{
free( pdata );
}
exit(0);
关于c - c需要的基本结构帮助,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9639004/