我有一个结构,并希望使用合并排序来对结构的数组进行排序。 我需要将排序参数传递给合并函数并访问结构成员。 这可以在C中完成吗?访问具有C中的变量或指针的结构成员
例如:
struct movie_imdb_data {
char color[15];
char director_name[100];
int num_critic_for_reviews;
int duration; /// in min not date and time
int director_facebook_likes;
int actor_3_facebook_likes;
char actor_2_name[100];
int actor_1_facebook_likes;
int gross;
};
在
main
功能
,我有:
if (argc > 2) {
column_sort = argv[2];
}
现在我想打电话给merge_sort(<array of struct>, <column_sort *>)
我可以访问该成员在阵列中作为array[0]->column_sort
比较?
现在我想打电话给归并排序,并通过
我想通过阵列和排序参数(即我需要排序的数组),我可以用一个变量来代替一个成员的名字,即。 。
arr[1].column_sort
,而不是
arr[1].color
'现在我想调用合并排序并通过'通过,什么? – Michi
通过'* argv []'传递的“排序参数”是什么意思? –
也许你需要结构中给定成员的偏移? C的'offsetof()'宏是'stddef.h'中的ANSI C库特征。它计算结构或联合类型中给定成员的偏移量(以字节为单位),作为size_t类型的表达式。 –