ポインタを使用して構造体型にデータを割り当てる方法


  1. ポインタを使用して構造体のメンバーに直接データを代入する方法:
#include <stdio.h>
typedef struct {
    int id;
    char name[20];
    float salary;
} Employee;
int main() {
    Employee emp;
    Employee *ptr = &emp;
    ptr->id = 1;
    strcpy(ptr->name, "John");
    ptr->salary = 5000.0;
    printf("Employee ID: %d\n", emp.id);
    printf("Employee Name: %s\n", emp.name);
    printf("Employee Salary: %.2f\n", emp.salary);
    return 0;
}
  1. ポインタを使用して構造体のメンバーにデータを割り当てる関数を作成する方法:
#include <stdio.h>
typedef struct {
    int id;
    char name[20];
    float salary;
} Employee;
void assignData(Employee *emp, int id, const char *name, float salary) {
    emp->id = id;
    strcpy(emp->name, name);
    emp->salary = salary;
}
int main() {
    Employee emp;
    Employee *ptr = &emp;
    assignData(ptr, 1, "John", 5000.0);
    printf("Employee ID: %d\n", emp.id);
    printf("Employee Name: %s\n", emp.name);
    printf("Employee Salary: %.2f\n", emp.salary);
    return 0;
}
  1. ポインタを使用して構造体のメモリを動的に割り当て、データを代入する方法:
#include <stdio.h>
#include <stdlib.h>
typedef struct {
    int id;
    char name[20];
    float salary;
} Employee;
int main() {
    Employee *emp = (Employee *)malloc(sizeof(Employee));
    emp->id = 1;
    strcpy(emp->name, "John");
    emp->salary = 5000.0;
    printf("Employee ID: %d\n", emp->id);
    printf("Employee Name: %s\n", emp->name);
    printf("Employee Salary: %.2f\n", emp->salary);
    free(emp);
    return 0;
}

これらの方法を使用すると、ポインタを介して構造体型にデータを割り当てることができます。適切な方法は、使用する環境や要件によって異なる場合があります。