🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: be.comp.programming
9 messages
9 total messages Started by brambi Tue, 14 Jan 2003 18:51
c vraagje
#6067
Author: brambi
Date: Tue, 14 Jan 2003 18:51
9 lines
1324 bytes
Hips,
Ik heb een string *item_text. Strikt genomen is het geen string omdat hij 
niet \0-terminated is. En dat is ook het probleem. Ik ken de lengte i en ik 
wil die string sluiten met \0 na i tekens. Ik heb het al geprobeert met 
memcpy maar het wil maar niet lukken.

Heeelp ;)

Bram.
Re: c vraagje
#6068
Author: Staf Wagemakers
Date: Tue, 14 Jan 2003 19:03
16 lines
1537 bytes
In article <E_YU9.11882$ym5.1854@afrodite.telenet-ops.be>, brambi wrote:
> Ik heb een string *item_text. Strikt genomen is het geen string omdat hij 
> niet \0-terminated is. En dat is ook het probleem. Ik ken de lengte i en ik 
> wil die string sluiten met \0 na i tekens. Ik heb het al geprobeert met 
> memcpy maar het wil maar niet lukken.
> 

item_text[i]='\0';

Zorg er wel voor er voldoende geheugen in item_text voorhanden is.

-- 
Staf Wagemakers

email      : staf@patat.org
homepage   : http://staf.patat.org
Re: c vraagje
#6070
Author: brambi
Date: Tue, 14 Jan 2003 20:07
27 lines
1977 bytes
Staf Wagemakers wrote:

> In article <E_YU9.11882$ym5.1854@afrodite.telenet-ops.be>, brambi wrote:
>> Ik heb een string *item_text. Strikt genomen is het geen string omdat hij
>> niet \0-terminated is. En dat is ook het probleem. Ik ken de lengte i en
>> ik wil die string sluiten met \0 na i tekens. Ik heb het al geprobeert
>> met memcpy maar het wil maar niet lukken.
>> 
> 
> item_text[i]='\0';
> 
> Zorg er wel voor er voldoende geheugen in item_text voorhanden is.

Nope werkt niet..
Dit is de declaratie van item_text:
char       *item_text;

Dit de functie (ik heb i even door 4 vervangen om te testen): 
item_text[4]= '\0';

En dit is de foutmelding:
Program received signal SIGSEGV, Segmentation fault.
0x804bf93 in printFname (unused=0x0, pSearchMatch=0x4260ff10, 
    summary_info=0x4260ff48) at main.c:408
408              item_text[4]= '\0';

Bram.
Re: c vraagje
#6071
Author: brambi
Date: Tue, 14 Jan 2003 20:08
18 lines
1612 bytes
Staf Wagemakers wrote:

> In article <E_YU9.11882$ym5.1854@afrodite.telenet-ops.be>, brambi wrote:
>> Ik heb een string *item_text. Strikt genomen is het geen string omdat hij
>> niet \0-terminated is. En dat is ook het probleem. Ik ken de lengte i en
>> ik wil die string sluiten met \0 na i tekens. Ik heb het al geprobeert
>> met memcpy maar het wil maar niet lukken.
>> 
> 
> item_text[i]='\0';
> 
> Zorg er wel voor er voldoende geheugen in item_text voorhanden is.
> 

Overigens bedankt voor je cursusje c. Handig om een aantal dingen op te 
frissen :)

Bram.
Re: c vraagje
#6072
Author: brambi
Date: Tue, 14 Jan 2003 20:39
18 lines
1679 bytes
brambi wrote:

> Staf Wagemakers wrote:
> 
>> In article <E_YU9.11882$ym5.1854@afrodite.telenet-ops.be>, brambi wrote:
>>> Ik heb een string *item_text. Strikt genomen is het geen string omdat
>>> hij niet \0-terminated is. En dat is ook het probleem. Ik ken de lengte
>>> i en ik wil die string sluiten met \0 na i tekens. Ik heb het al
>>> geprobeert met memcpy maar het wil maar niet lukken.
>>> 
>> 

Opgelost. Er zat ook nog een foutje boven iets boven die code. Uiteindelijk 
heb ik het met strncpy gedaan.

Tnx

Bram.
Re: c vraagje
#6074
Author: MaG
Date: Tue, 14 Jan 2003 21:06
34 lines
2225 bytes
"brambi" <bramNOSPAM@bram.be> schreef in bericht
news:b7_U9.12024$ym5.1534@afrodite.telenet-ops.be...
> Staf Wagemakers wrote:
>
> > In article <E_YU9.11882$ym5.1854@afrodite.telenet-ops.be>, brambi wrote:
> >> Ik heb een string *item_text. Strikt genomen is het geen string omdat
hij
> >> niet \0-terminated is. En dat is ook het probleem. Ik ken de lengte i
en
> >> ik wil die string sluiten met \0 na i tekens. Ik heb het al geprobeert
> >> met memcpy maar het wil maar niet lukken.
> >>
> >
> > item_text[i]='\0';
> >
> > Zorg er wel voor er voldoende geheugen in item_text voorhanden is.
> >
>
> Overigens bedankt voor je cursusje c. Handig om een aantal dingen op te
> frissen :)
>
> Bram.

't Is nog altijd fout zenne, Staf schrijft dat je voldoende geheugen moet
voorzien en dat doe je niet!
Je declareert item_text als een pointer en die heeft dus geen 'geheugen'
voor die string.
Als item_text toevallig naar een stuk geheugen wijst waar jij in mag
schrijven zal het werken, anders
niet. Maar als het werkt zal je wel ergens anders rare dingen zien
gebeuren...  :-))

MaG
Re: c vraagje
#6075
Author: brambi
Date: Tue, 14 Jan 2003 21:23
41 lines
2527 bytes
MaG wrote:

> 
> "brambi" <bramNOSPAM@bram.be> schreef in bericht
> news:b7_U9.12024$ym5.1534@afrodite.telenet-ops.be...
>> Staf Wagemakers wrote:
>>
>> > In article <E_YU9.11882$ym5.1854@afrodite.telenet-ops.be>, brambi
>> > wrote:
>> >> Ik heb een string *item_text. Strikt genomen is het geen string omdat
> hij
>> >> niet \0-terminated is. En dat is ook het probleem. Ik ken de lengte i
> en
>> >> ik wil die string sluiten met \0 na i tekens. Ik heb het al geprobeert
>> >> met memcpy maar het wil maar niet lukken.
>> >>
>> >
>> > item_text[i]='\0';
>> >
>> > Zorg er wel voor er voldoende geheugen in item_text voorhanden is.
>> >
>>
>> Overigens bedankt voor je cursusje c. Handig om een aantal dingen op te
>> frissen :)
>>
>> Bram.
> 
> 't Is nog altijd fout zenne, Staf schrijft dat je voldoende geheugen moet
> voorzien en dat doe je niet!
> Je declareert item_text als een pointer en die heeft dus geen 'geheugen'
> voor die string.
> Als item_text toevallig naar een stuk geheugen wijst waar jij in mag
> schrijven zal het werken, anders
> niet. Maar als het werkt zal je wel ergens anders rare dingen zien
> gebeuren...  :-))

Bwa daartussen heb ik nog een paar memcpy geploft en alles lijkt toch te 
werken :-p. Rare dingen? ik zit aan regel 424 en ik heb er nog geen ��ne 
normale gezien ;)

Bram.
Re: c vraagje
#5987
Author: edg
Date: Thu, 16 Jan 2003 01:03
39 lines
2297 bytes
"brambi" <bramNOSPAM@bram.be> schreef in bericht
news:m6_U9.12023$ym5.1832@afrodite.telenet-ops.be...
> Staf Wagemakers wrote:
>
> > In article <E_YU9.11882$ym5.1854@afrodite.telenet-ops.be>, brambi wrote:
> >> Ik heb een string *item_text. Strikt genomen is het geen string omdat
hij
> >> niet \0-terminated is. En dat is ook het probleem. Ik ken de lengte i
en
> >> ik wil die string sluiten met \0 na i tekens. Ik heb het al geprobeert
> >> met memcpy maar het wil maar niet lukken.
> >>
> >
> > item_text[i]='\0';
> >
> > Zorg er wel voor er voldoende geheugen in item_text voorhanden is.
>
> Nope werkt niet..
> Dit is de declaratie van item_text:
> char       *item_text;

een pointer alleen is niet voldoende, je moet ook nog geheugen reserveren
voor die pointer
item_next = new char[20];
ofwel een array gebruiken
char item_next[20];

>
> Dit de functie (ik heb i even door 4 vervangen om te testen):
> item_text[4]= '\0';
>
> En dit is de foutmelding:
> Program received signal SIGSEGV, Segmentation fault.
> 0x804bf93 in printFname (unused=0x0, pSearchMatch=0x4260ff10,
>     summary_info=0x4260ff48) at main.c:408
> 408              item_text[4]= '\0';
>
> Bram.
Re: c vraagje
#5998
Author: Keyser Soze
Date: Fri, 17 Jan 2003 18:20
18 lines
1983 bytes
> Bwa daartussen heb ik nog een paar memcpy geploft en alles lijkt toch te
> werken :-p. Rare dingen? ik zit aan regel 424 en ik heb er nog geen ��ne
> normale gezien ;)

Je rijdt rond met een auto met kale banden. Hij lijkt goed te rijden, en je
hebt nog geen klapbanden gehad.
Je bent goed bezig!

Volgens de wet van Murphy zal je programma niet crashen zolang jij het
gebruikt, maar wel bij de eerste klant waaraan je het laat zien,
en de klant zal het direct in de prullenmand gooien.

Zeker als je begint met C leer je beter de juiste manieren om met pointers
om te gaan. Anders neem je beter Java of C#.

Toch wens ik je nog veel plezier met C,

Keyser Soze
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads