On 23-Aug-2000, Ronny Haryanto wrote:
> On 23-Aug-2000, Benny Prijono wrote:
> > Segmentation fault terjadi kalo program:
> > 1. membaca/menulis lokasi memory diluar memory space si program (?)
> > 2. menulis ke segmen yg. bukan data atau stack segmen.
> > Program bung Ronny di atas nggak segfault karena i[99] itu (kebetulan)
> > masih masuk ke data segment. Jadi yg. terjadi adalah memory overwrite.
>
> Right. Coba indexnya diganti -9999 misalnya. Thanks atas
> penjelasannya. Saya tahu penjelasan saya memang kurang spesifik
> kemarin.
Saya baru inget, contoh yg lebih sering dijumpai (terutama waktu
belajar C) adalah lupa allocate memory setelah declare pointer:
#include <string.h>
#include <stdio.h>
int main()
{
char *s;
/* mestinya di sini ada s=malloc() */
strcpy(s, "contoh string");
printf("%s\n", s);
}
Variable (pointer) s adanya di data segment, tapi memorynya belum
diallocate di stack. Dan s masih menunjuk entah ke mana, karena
uninitialized.
Ronny
--------------------------------------------------------------------------------
Utk berhenti langganan, kirim email ke [EMAIL PROTECTED]
Informasi arsip di http://www.linux.or.id/milis.php3
Pengelola dapat dihubungi lewat [EMAIL PROTECTED]