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]