On Wed, Oct 18, 2000 at 11:55:56AM +0700, mastri wrote:
> 
> > void callbyreference2(char & p)
> 
> ini bukannya jadi reference ke char, padahal yang dikirim string (char *).
> dan AFAIK. reference gini khan (pake &) itu konsep C++. kalau konsep
hauhuaahuahuahuahua
buetul mass....
saya liat di http://www.thunderstone.com/vortexman/node25.html
itu buat c++ :)
trus tanpa pikir panjang saya adopt ke c dengan asumsi ah C++ aja bisa berarti c juga 
bisa
donk :)
> call by reference C (tanpa ++) itu yah kirim pointer aja, ataukalau
yah betul mas, saya coba ubah & ke * langsung jalan tapi akibatnya segmentation fault

> string, karena nama string itu pointer yah kirim nama string.
> 
ok berikut snippetnya yang sudah saya ubah ke char *
int xorz[9]={34,56,22,41,23,54,12,64,23};

void callbyreference2(char * p2)
{
char * strz;
int i;
i=0;
strz=p2;
while (*strz){
p2[i] = (p2[i] ^ (xorz[i]+i));
strz++;
i++;
}
return ;
}

void callbyreference(char * p)
{
callbyreference2(p);
return ;
}

void main(void)
{
int x = 10;
char * coba = "teststring";
callbyreference(coba);
puts(coba);
return;
}

$ gcc -o cobastring cobastring.c
cobastring.c: In function `main':
cobastring.c:24: warning: return type of `main' is not `int'

$ ./cobastring
Segmentation fault (core dumped)

output gdb

Breakpoint 1, callbyreference2 (p=0x80484f0 "teststring") at cobastring.c:10
10      p2[i] = (p2[i] ^ (xorz[i]+i));
(gdb) next

Program received signal SIGSEGV, Segmentation fault.
0x804842d in callbyreference2 (p=0x80484f0 "teststring") at cobastring.c:10
10      p2[i] = (p2[i] ^ (xorz[i]+i));


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