2

我有:

#include <stdio.h>

struct DVD {
    char *movie_title;
    int minutes;
    float price;
};

void display_struct(struct DVD *ptr);

int
main()
{
    struct DVD movies[10];
    movies[0].movie_title = "I Am Legend"; //Don't want to do this
}

void
display_struct(struct DVD *ptr)
{
    printf("%s\n%i\n%f\n", ptr->movie_title, ptr->minutes, ptr->price);
}

我想在一个语句中为我的结构数组分配 10 个电影标题。这可能吗?谢谢!

4

2 回答 2

7

在这样的单一声明中?

main()
{
    struct DVD movies[10] = {
        { .movie_title = "I Am Legend",
          .minutes = 101,
          .price = 9.99
        },
        { .movie_title = "Hancock",
          .minutes = 103,
          .price = 5.99
        },
        { .movie_title = "MIB3",
          .minutes = 106,
          .price = 9.49
        }
    };
}

如果要避免所有字段名称:

main() {
    struct DVD movies[10] = {
        { "I Am Legend", 101, 9.99    },
        { "Hancock",     103, 5.99    },
        { "MIB3",        106, 9.49    }
    }; 
}
于 2012-06-05T17:31:19.663 回答
2
#include <stdio.h>

struct DVD {
    char *movie_title;
    int minutes;
    float price;
};

void display_struct(struct DVD *ptr);

int main()
{
    struct DVD movies[10] =
    {
        { "I am Legend", 90, 4 },
        { "Star Wars", 100, 5 },
        { "Another Title", 60, 1},
        .......
    };
}

void display_struct(struct DVD *ptr)
{
    printf("%s\n%i\n%f\n", ptr->movie_title, ptr->minutes, ptr->price);
}
于 2012-06-05T17:52:04.517 回答