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]

Kirim email ke