DAFTAR LABEL POPULER PENELITIAN.ID

Jangan Buka Artikel Ini!

Sizeof untuk Parameter Array Bahasa C

Pada bahasa C, parameter array akan diperlakukan sebagai pointer. Sehingga, ekspresi sizeof(err)/sizeof(arr[0]) akan menjadi sizeof(int*)/sizeof(int) dengan hasilnya adalah 1, dalam program 32bit, dan untuk looping dalam fun() akan dieksekusi hanya sekali terlepas dari ukuran array itu sendiri.


Alasan Larangan Penggunaan Sizeof untuk Parameter Array Bahasa C
Ilustrasi Sizeof Bahasa C


Contoh: Berikut dijelaskan tentang larangan penggunaan Sizeof untuk parameter array pada bahasa C, perhatikan program berikuti ini.

#include<stdio.h>

 

void fun(int arr[])

{int i;

// Sizeof tidak seharusnya

// digunakan pada bagian ini

// untuk mendapatkan nilai

// dari elemen array.

 

// Penggunaan sizeof tidak

// tepat.

int arr_size = sizeof(arr)/sizeof(arr[0]); 

for (i = 0; i < arr_size; i++){

/*Hanya dieksekusi sekali*/

arr[i] = i;}

}

 

int main()

{int i;

int arr[4] = {0, 0 ,0, 0};

fun(arr);

 

/* Penggunaan sizeof aman*/

for(i = 0; i < sizeof(arr)/sizeof(arr[0]); i++)

printf(" %d " ,arr[i]);

getchar();

return 0;

}

Output: 
0 0 0 0

Fungsi fun() menerima parameter array arr[] dan mencoba menemukan angka dari elemen pada arr[] menggunakan operator sizeof.

Oleh karena itu, sizeof seharusnya tidak digunakan untuk mendapatkan angka dari elemen pada contoh kasus yang diberikan sebelumnya. Sebuah parameter terpisah dari ukuran array atau length harus dilewatkan menuju fun(). Berikut contoh program yang telah dilakukan koreksi adalah.

Contoh:

#include<stdio.h>

void fun(int arr[], size_t arr_size)

{

int i;

for (i = 0; i < arr_size; i++)

{arr[i] = i;}

}

 

int main()

{

int i;

int arr[4] = {0, 0 ,0, 0};

fun(arr, 4);

 

for(i = 0; i < sizeof(arr)/sizeof(arr[0]); i++)

printf(" %d ", arr[i]);

getchar();

 

return 0;

}


Komentar

  1. Apa fungsi operator sizeof pada bahasa C?

    BalasHapus
    Balasan
    1. Operator sizeof adalah operator yang paling umum pada bahasa C. Operator tersebut adalah operator unary yang digunakan untuk menghitung ukuran nilai operannya. Operator tersebut mengembalikan nilai atau ukuran variabel, dan ketika digunakan dengan tipe data tertentu, maka akan mengembalikan jumlah memori yang dialokasikan untuk tipe data tersebut.

      Hapus
  2. Bagaimana cara menentukan jumlah total elemen array pada bahasa c dengan operator sizeof?

    BalasHapus
    Balasan
    1. Operator sizeof pada sebuah array akan mengembalikan total memori yang ditempati oleh array tersebut dalam satuan byte. Untuk dapat menentukan jumlah total elemen array, maka dapat dilakukan dengan cara membagi total memori yang ditempati oleh array dengan ukuran dari setiap elemen.

      Hapus
  3. Operator sizeof akan mengembalikan ukuran dari sebuah pointer, bukan dari sebuah array, ketika array tersebut diteruskan oleh nilai ke suatu fungsi tertentu.

    BalasHapus

Posting Komentar

Hubungi admin melalui Wa : +62-896-2514-6106

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.

Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.

~ Ikatlah Ilmu dengan Memostingkannya ~

Postingan populer dari blog ini (30 Hari)

Enkapsulasi Java dan Fungsinya

Specifier %d dan %i Bahasa C dan Fungsinya

4 Kesalahan Umum yang Sering Terjadi pada PTK

7 Paradigma Penelitian pada Statistika Penelitian

Cara Membuat Drag and Drop pada HTML

Postingan populer dari blog ini (All Time)

Enkapsulasi Java dan Fungsinya

Komunitas