2012/7/26 Wirasto Karim <wirastoka...@gmail.com>:
> Saya kebingungan dengan penggunaan malloc.
>
>     int *p=(int *) malloc(2 * sizeof(int));
>
>     *p = 1;
>     *(p + 1)=100;
>     *(p + 2)=300;
>     *(p + 3)=500;
>
> Kalau dari yang saya baca dibuku, bukankah seharusnya saya cuma bisa nyimpan
> 2 data integer?? Kenapa malah bisa lewat?

Hehe.. nggak usah capek-capek pake malloc, gini aja

int numbers[2];
numbers[10] = 5;

Coba aja deh, pasti bisa :)

Terus bedanya apa? Bedanya cuma masalah keamanan. Kalo ngisi di array
numbers angka dari 0 sampai 2, pasti tidak akan crash.

>     char *nama=(char *) malloc (4 * sizeof(char));
>
> Apa ini artinya saya hanya bisa memasukan teks sepanjang 4 karakter di
> variabel nama?

Yak, tapi tentu saja, tetap bisa menaruh karakter pada index >= 4
walaupun tidak aman.

> Saya coba dengan karakter yang lebih panjang tetap bisa.

Ini yang namanya heap overflow :)

Semoga membantu.

regards,

Dicky Arinal

-- 
Berhenti langganan: linux-programming-unsubscr...@linux.or.id
Arsip dan info: http://linux.or.id/milis

Kirim email ke