Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

C struct dan Pointer

C struct dan Pointer

Dalam tutorial ini, Anda akan belajar menggunakan pointer untuk mengakses anggota struct dalam pemrograman C. Anda juga akan belajar mengalokasikan memori tipe struct secara dinamis.

Sebelum Anda mempelajari tentang bagaimana pointer dapat digunakan dengan struct, pastikan untuk memeriksa tutorial ini:


Penunjuk C ke struct

Berikut cara membuat pointer ke struct.

struct name {
    member1;
    member2;
    .
    .
};

int main()
{
    struct name *ptr, Harry;
}

Di sini, ptr adalah penunjuk ke struct .


Contoh:Akses anggota menggunakan Pointer

Untuk mengakses anggota struktur menggunakan pointer, kita menggunakan -> operator.

#include <stdio.h>
struct person
{
   int age;
   float weight;
};

int main()
{
    struct person *personPtr, person1;
    personPtr = &person1;   

    printf("Enter age: ");
    scanf("%d", &personPtr->age);

    printf("Enter weight: ");
    scanf("%f", &personPtr->weight);

    printf("Displaying:\n");
    printf("Age: %d\n", personPtr->age);
    printf("weight: %f", personPtr->weight);

    return 0;
}

Dalam contoh ini, alamat person1 disimpan di personPtr penunjuk menggunakan personPtr = &person1; .

Sekarang, Anda dapat mengakses anggota person1 menggunakan personPtr penunjuk.

Omong-omong,


Alokasi memori dinamis dari struct

Sebelum Anda melanjutkan bagian ini, sebaiknya periksa alokasi memori dinamis C.

Terkadang, jumlah variabel struct yang Anda deklarasikan mungkin tidak mencukupi. Anda mungkin perlu mengalokasikan memori selama run-time. Inilah cara Anda dapat mencapainya dalam pemrograman C.

Contoh:Alokasi memori dinamis dari struct

#include <stdio.h>
#include <stdlib.h>
struct person {
   int age;
   float weight;
   char name[30];
};

int main()
{
   struct person *ptr;
   int i, n;

   printf("Enter the number of persons: ");
   scanf("%d", &n);

   // allocating memory for n numbers of struct person
   ptr = (struct person*) malloc(n * sizeof(struct person));

   for(i = 0; i < n; ++i)
   {
       printf("Enter first name and age respectively: ");

       // To access members of 1st struct person,
       // ptr->name and ptr->age is used

       // To access members of 2nd struct person,
       // (ptr+1)->name and (ptr+1)->age is used
       scanf("%s %d", (ptr+i)->name, &(ptr+i)->age);
   }

   printf("Displaying Information:\n");
   for(i = 0; i < n; ++i)
       printf("Name: %s\tAge: %d\n", (ptr+i)->name, (ptr+i)->age);

   return 0;
}

Saat Anda menjalankan program, outputnya adalah:

Enter the number of persons:  2
Enter first name and age respectively:  Harry 24
Enter first name and age respectively:  Gary 32
Displaying Information:
Name: Harry	Age: 24
Name: Gary	Age: 32

Pada contoh di atas, n jumlah variabel struct dibuat di mana n dimasukkan oleh pengguna.

Untuk mengalokasikan memori untuk n jumlah orang struct , kami menggunakan,

ptr = (struct person*) malloc(n * sizeof(struct person));

Kemudian, kami menggunakan ptr pointer untuk mengakses elemen person .


Bahasa C

  1. C# Kata Kunci dan Pengidentifikasi
  2. C# Kelas dan Objek
  3. C# kelas abstrak dan metode
  4. C# Kelas Parsial dan Metode Parsial
  5. C# kelas dan metode tersegel
  6. C# struktur
  7. C Kata Kunci dan Pengidentifikasi
  8. C Pointer
  9. Hubungan Antara Array dan Pointer
  10. C Pass Alamat dan Pointer