簡體   English   中英

C字符指針

[英]C character pointers

所以我在C中有一個結構

struct LData {
    char* name;
    int age;
    int sex; /* 0 = male, 1 = female */
};

那是用

struct LData *create_data(char *name, int age, int sex) {
    struct LData *data;

    data = malloc(sizeof(struct LData));
    data->name = name;
    data->age = age;
    data->sex = sex;

return data;
}

我嘗試使用

void print_data(struct LData *data) {
    char *sex;

    if (data->sex == 0) {
        sex = "male";
    } else {sex = "female";}
    printf("%c-%d-%c",data->name, data->age, *sex);
}

但我不斷收到此格式錯誤:

listdata.c: In function _print_data_:
listdata.c:52:2: warning: format _%c_ expects argument of type _int_, but argument 2 has type      _char *_ [-Wformat=]
printf("%c-%d-%c",data->name, data->age, *sex);

我知道* name指針弄亂了某些東西,但我不能完全指出它。

對於字符串(指向char的指針),您需要%s而不是%c

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM