[英]Passing char * into struct
因此,我有一个结构成员char *,我想在分配节点内存后对其进行初始化。但是,此方法使我遇到了段故障。 注意。 是的,我想要一个infoPtr。 请原谅任何语法错误,这些不是我要解决的问题。 我想要的只是正确地将一个char字符串传递给 name。
struct Info{
char *name;
}
typedef struct Info *infoPtr;
int main(void){
enter("google");
}
void enter(char *name){
infoPtr* info=(infoPtr)malloc(sizeof(infoPtr));
info->name=strup(name);
}
这里
typedef struct Info *infoPtr;
infoPtr
是struct Info*
类型,此
infoPtr* info=(infoPtr)malloc(sizeof(infoPtr)); /* info will be of struct Info** type */
应该
infoPtr info = malloc(sizeof(*infoPtr)); /* typecasting is not required */
旁注,将typedef
指针视为不是一种好习惯,请阅读typedef指针是一个好主意吗?
也在这里
info->name=strup(name);
您想使用strdup()
代替strup()
例如
info->name=strdup(name);
出现您的问题时, 我想要的就是正确地将一个char字符串传递给name吗? 是的,除了typedefing结构指针之外,您将参数传递给enter()
是正确的。 并传递字符串文字google
像
enter("google");
并像这样定义enter()
void enter(char *name){ /* Its correct */
/* play with name */
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.