#include
#include
#include
typedef struct {
int id;
char name[20];
double score;
} Student;
int main() {
Student *p = (Student *)malloc(sizeof(Student));
if (p == NULL) {
printf(“Memory allocation failed.”);
return -1;
}
p->id = 1; // 给结构体成员变量赋值的方式之一
strcpy(p->name, "Tom");
p->score = 90.5;printf("Before assignment: id=%d, name=%s, score=%.1f\n", p->id, p->name, p->score);int new_id = 2;
double new_score = 95.0;// 动态给结构体成员变量赋值
*(int *)((char *)p + offsetof(Student, id)) = new_id;
*(double *)((char *)p + offsetof(Student, score)) = new_score;printf("After assignment: id=%d, name=%s, score=%.1f\n", p->id, p->name, p->score);free(p);
return 0;
}