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