我的问题是指 C 指针的主题。想象以下场景:我有一个名为“stc”的结构变量,定义如下:
struct stc {
int data;
char ch;
}
在我的程序的 Main() 函数的开头声明。我想使用函数设置结构中的字段(即data)的值。
现在我的问题是以下哪个约定更好,为什么?
约定 1: 编写一个返回类型为stc的指针的函数:
struct stc *func(int d, char c)
{
stc *tmp = malloc(sizeof(stc))
tmp -> data = d;
tmp -> ch = c;
return tmp;
}
稍后在不再需要该结构时释放分配的内存。
约定2:编写一个函数,接收指向该结构的指针,并将stc的地址发送给它
void func(stc *stcP, int d, char c)
{
stcP -> data = d;
stcP -> ch = c;
}
非常感谢!