From: Hans-Bernhard Broeker Newsgroups: comp.os.msdos.djgpp Subject: Re: C++, complex, etc Date: 18 May 2000 13:57:14 GMT Organization: Aachen University of Technology (RWTH) Lines: 37 Message-ID: <8g0srq$ige$1@nets3.rz.RWTH-Aachen.DE> References: <3923BA11 DOT AD387617 AT mtu-net DOT ru> <8g0to9 DOT 3vs4qnf DOT 0 AT buerssner-17104 DOT user DOT cis DOT dfn DOT de> <3923E49D DOT 870F5E34 AT mtu-net DOT ru> NNTP-Posting-Host: acp3bf.physik.rwth-aachen.de X-Trace: nets3.rz.RWTH-Aachen.DE 958658234 18958 137.226.32.75 (18 May 2000 13:57:14 GMT) X-Complaints-To: abuse AT rwth-aachen DOT de NNTP-Posting-Date: 18 May 2000 13:57:14 GMT Originator: broeker@ To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com Alexei A. Frounze wrote: > Do I need to declare a variable of "size_t" type, if I want to know length > of the string using strlen()??? If you want to store the value of the strlen() call: Yes, most certainly you have to. If you don't, you risk breaking your program on some platform, where it could usually have worked nicely. A simple example: if the char* variable 'mystring' happens to point to string of 40000 characters, and you do this: int i; int length = strlen(mystring) /* set all of 'mystring' to the letter '-': for (i=0; i< length; i++) mystring[i] = '-'; you'll be quite confused by the result on a 16bit platform. Even worse would have been /* set the 10th-last letter to '+': */ mystring[length-10] = '+'; This one will usually crash the program, or overwrite content of other variables totally unrelated to 'mystring'. Changing the types of 'i' and 'length' to size_t gives working code. > If so, how do I mix int and size_t then? Or I need to use size_t only, if I > have problems with type casting??? You shouldn't generally need any type casting between int and size_t. If at all, it'll usually be from int to size_t, not the other way round. If you think you have to do that, chances are high that you're just writing broken code. -- Hans-Bernhard Broeker (broeker AT physik DOT rwth-aachen DOT de) Even if all the snow were burnt, ashes would remain.