/**
 * struct Point {
 *  int x;
 *  int y;
 * };
 */
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param point Point类 上方struct仅为二维空间点类示例,题中为多维空间的点类
 * @return int整型
 */
//   struct Point {
//    int x;
//    int y;
//    int z;
//    int t;
//  };
#define POINT_LENGTH(point) (sizeof(point) / sizeof(typeof(point.x)))
int define_count(struct Point point ) {
    // write code here
    return POINT_LENGTH(point);
}
//这一题的Point结构体已经被定义好了,所以不管怎么输入都是结果为2,可以直接把这题理解为计算相同类型成员变量的结构体成员个数。
//运行时动态确定成员数量
//如果结构体的成员是通过指针动态分配的,那么可以在分配时记录成员的数量。示例如下:
/*
        #include <stdio.h>
#include <stdlib.h>
typedef struct {
    int *data;
    int count;
} DynamicStruct;
int main() {
    DynamicStruct ds;
    ds.count = 10;
    ds.data = (int *)malloc(ds.count * sizeof(int));
    if (ds.data == NULL) {
        printf("内存分配失败\n");
        return 1;
    }
    printf("结构体成员变量个数: %d\n", ds.count);
    free(ds.data);
    return 0;
}
*/