Sizeof untuk Parameter Array Bahasa C
#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: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.
#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;
}
- 2 Contoh Program Penggunaan Fungsi Strcat dan Strcmp pada Bahasa C [klik]
- Penggunaan Char pada Bahasa C [klik]
- Fakta Unik Risiko Penggunaan gets() pada Bahasa C [klik]
- 3 Contoh Program Fungsi untuk Menukar String Bahasa C [klik]
- 6 Contoh Program Penyimpanan String dalam Bahasa C [klik]
- 10 Contoh Program Perbedaan Array dan Pointer Bahasa C [klik]
- 4 Cara Sederhana untuk Alokasi Dinamis Array 2D pada Bahasa C [klik]
Apa fungsi operator sizeof pada bahasa C?
BalasHapusOperator 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.
HapusBagaimana cara menentukan jumlah total elemen array pada bahasa c dengan operator sizeof?
BalasHapusOperator 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.
HapusOperator sizeof akan mengembalikan ukuran dari sebuah pointer, bukan dari sebuah array, ketika array tersebut diteruskan oleh nilai ke suatu fungsi tertentu.
BalasHapus