繁体   English   中英

将char *传递给struct

[英]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;

infoPtrstruct 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM