簡體   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