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