我有:
#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个电影标题。这可能吗?谢谢!
答案 0 :(得分: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 }
};
}
答案 1 :(得分: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);
}