Saya pernah buat program parsing untuk me-milah2 suatu kalimat menjadi kata seperti 
dibawah ini :

#include <iostream.h>

#define awal 0
#define nawal 1

void pars(char *cstr, char cs, int &iargc, char **cargv)
{
int cstate=awal,sstate=awal;
char *c;
iargc=0;
c=cstr;

  while(*c!=0)
  {
    if((*c==cs))
   {
     if(sstate==awal)
    {
      *c=0; // <--- menjadi masalah
      cstate=awal;
      sstate=nawal;
    }
   }
    else
   {
     if(cstate==awal)
    {
      cargv[(iargc)++]=c;
      cstate=nawal;
      sstate=awal;
    }
   }
    c++;

  }
}

void main()
{
 char *test="satu dua tiga empat lima enam";
 char cs=32;
 int jumlah;
 char *argv[8];

 pars(test,' ',jumlah,argv);

 cout<< argv[0] <<" "<<argv[1] <<endl;
}

Pernah saya compile dan berjalan baik di Borland C++ 3.1 , tapi kok di GNU enggak mau 
ya ?
di compile sih OK tapi ketika di execute ./a.out kok error segment mulu.

masalahnya terletak di *c = 0 ; saat saya kasih NULL . kira2 apa nya yang salah ya ? 
saya masih baru pake
G++


thanks


--------------------------------------------------------------------------------
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