HDTenEightyP/NetNews huggingface dataset:
From: runeh@dhhalden.no (RUNE HALFDAN HOLST HUSEBY)
Subject: Error in Borland's assert()?
Organization: Ostfold College
Date: Fri, 9 Oct 1992 20:30:56 GMT

What's wrong with the following code:

	#define BOARDHEIGHT 50
	#define BOARDWIDTH 59

	int move(PLAYER *Player, int foo)
	{
	  .	.
	  .	.
	  .	.
	  assert(Player->point.x >= BOARDWIDTH);
	  assert(Player->point.y >= BOARDHEIGHT);

	  if(Player->point.x >= BOARDWIDTH || Player->point.y >= BOARDHEIGHT)
	  {
	    kbhit();
	  }
	  .	.
	  .	.
	  .	.
	  return 0;
	}	

The assertion hits, but never the corresponding if() statement, 
so obviously there must be something wrong with the assert().
It even fails when I use the real values instead of the constants.

Any help mostly appreciated.

runeh@dhhalden.no


                               }  } {  {
/-------------------------------}  }  { /----------------------------------\
| Rune Halfdan Holst Huseby      }  {  |  S-Mail: Atomveien 18             |
|  ____________________________   }{   |          1777 HALDEN              |
| (_____(_runeh@dhhalden.no____###)    |          NORWAY                   |
|-------------------------------------/ \----------------------------------|
| Real programmers never work 9 to 5. If any real programmers are around   |
| at 9 am, it's because they were up all night.                            |
\--------------------------------------------------------------------------/

Newsgroups: comp.lang.c
From: tlhouse@nyx.cs.du.edu (Thomas House)
Subject: -TCXLvid.h
X-Disclaimer: Nyx is a public access Unix system run by the University
	of Denver for the Denver community.  The University has neither
	control over nor responsibility for the opinions of users.
Organization: Nyx, Public Access Unix at U. of Denver Math/CS dept.
Date: Wed, 7 Oct 92 14:32:42 GMT


If I recall correctly, the use of the _TCXLvid in the demo was pretty much
restricted to some oddball adapter or something like that .. to compile
it, I had to track down all of the undefined symbols and remove their
references .. it won't work otherwise .. If you can find it, try picking
up a copy of CXL5.2 .. its pretty much just as good, has all the files
included, and doesn't look like some weird OPP-Pascal port .. unless you
want to shell out the money for the newer versions of TCXL .. 

Newsgroups: comp.lang.c
From: keck@castor.trl.OZ.AU (Brian Keck)
Subject: Re: Request for info - Software Testing Tools
Organization: Telecom Research Labs,Melbourne, Australia
Date: Fri, 9 Oct 1992 14:52:17 GMT

In comp.software-eng, scip2060@nusunix1.nus.sg (SARDJONO INSANI) asked:
	REQUEST FOR INFO - SOFTWARE TESTING TOOLS
	Could anyone please give me information on software testing tools
	commercially available, with brief comments of their functionality,
	price and address of vendors?

I have what I guess is a similar question.

What I have in mind are tools that take up where lint leaves off,
for C primarily, but also C++ & Eiffel.

I've seen the thread on Purify/dbmalloc/Sentinel, but am more interested
in programming style as it affects maintainability & other good things
(reliability, efficiency, portability, interoperability, ...).

Thanks for any help,

Brian Keck

b.keck@trl.oz.au, phone +61 3 253 6407, fax +61 3 253 6362 
Network Services & Signalling, Telecom Research Laboratories
770 Blackburn Rd, Clayton Victoria 3168, Australia
b.keck@trl.oz.au, phone +61 3 253 6407, fax +61 3 253 6362 
Network Services & Signalling, Telecom Research Laboratories
770 Blackburn Rd, Clayton Victoria 3168, Australia
Newsgroups: comp.lang.c,comp.lang.c++
From: bernie@metapro.DIALix.oz.au (Bernd Felsche)
Subject: Re: wanted: way to detect if stderr has been redirected...
Keywords: stderr, stream redirection
Organization: MetaPro Systems, Perth, Western Australia
Date: Thu, 15 Oct 92 01:26:38 GMT

In <1992Oct13.123044.27509@relay.nswc.navy.mil>
   kestes@nswc-wo.nswc.navy.mil (Kent Estes) writes:

>I am trying to make a function that will printf to stdout AND
>to stderr IFF (if and only if) stderr has been redirected.
>The only part I am not certain about is how to tell if 
>stderr has been redirected.  The function fileno() is no
>help -- it returns the file # of the first file associated
>with the stream.

Not sure what you mean by changed, but if you want to know
if they are different, then use the fstat(2) information on
both the file descriptors to compare them. I take the
liberty of assuming that you're using UNIX or at least a
compatability library.

-- 
+-----+ Bernd Felsche                     _--_|\  #include <std/disclaimer.h>
| | | | MetaPro Systems Pty Ltd          /      \ bernie@metapro.DIALix.oz.au
| | | | 328 Albany Highway,              X_.--._/         Fax: +61 9 472 3337
|m|p|s| Victoria Park, Western Australia 6100  v        Phone: +61 9 362 9355
From: wirzeniu@klaava.Helsinki.FI (Lars Wirzenius)
Newsgroups: comp.lang.c
Subject: Re: Strings and integer sizes
Date: 10 Oct 92 12:04:09 GMT
Organization: University of Helsinki

wilson@rhombus.cs.jhu.edu (Dwight Wilson) writes:
>Does anyone know what the rationale was for accepting this form?

I don't have a copy of the standard (it costs too much), but I have
found a cheap copy of the rationale, and in section 3.5.7, page 58 it
says (after a statement that the trailing null needn't be used for
initialization):

	(Some widely used implementations provide precedent.)

--
Lars.Wirzenius@helsinki.fi  (finger wirzeniu@klaava.helsinki.fi)
Newsgroups: comp.lang.c
From: rick@opus.alf.dec.com (Rick Silverstein)
Subject: Processing arguments...Need suggestions
Reply-To: rick@opus.alf.dec.com (Rick Silverstein)
Organization: Digital Equipment Corporation
Date: Wed, 7 Oct 1992 19:55:56 GMT


I'm writing a parser for a command and using getopts() to process each argument.

However, some arguments are not valid with other arguments.  There are about
10 possible arguments and I'm looking for the fastest way to check for 
conflicts.  I'm trying to avoid multiply IF statements.  I've created an array 
on paper as to what's valid and what's not but I'm not sure what is the best 
way to code it.   I'm open to suggestions.

Thanks!

Xref: sparky comp.lang.c:14983 comp.lang.c++:14990 comp.std.c:2820 comp.std.c++:1381
From: markr@csc.liv.ac.uk (Mark Rivers)
Newsgroups: comp.lang.c,comp.lang.c++,comp.std.c,comp.std.c++
Subject: Re: NULLing a pointer
Date: 14 Oct 92 00:30:30 GMT
Organization: Computer Science, Liverpool University

Crunchy Frog writes:

> Kayvon Z. Sadeghi writes:
> 
> >1- how do you change the value of a pointer passed to a subroutine? It seems
> >to me like you can do almost anything with it except changing the value
> >to NULL. This is what I mean:
> 
> Let me ask you a question: I have a frobznick.  How do I change the value
> of the frobznick in a subroutine?  I pass a pointer to it.  How, then, do
> I change the value of a pointer?  I pass a pointer to that pointer.
> 
> [code rearranged]
>
> changeMe(int **thing) { *thing = NULL; }
> main()
> {
>   int *fred;
>   changeMe(&fred);
> }

A more elegant solution in C++ is to use a reference to a pointer.

void changeMe(int*& thing) { thing = NULL; }
main()
{
    int *fred;
    changeMe(fred);
}

This looks exactly like your original code except that the changeMe
declaration specifies call-by-reference on "thing".

	Mark

____________________________________________________________________________
Mark Rivers,                                  |
Department of Computer Science,               |
Chadwick Building, University of Liverpool,   |   Voice: +44 51 794 3684
P.O. Box 147, Brownlow Hill,                  |   Fax:   +44 51 794 3715
Liverpool L69 3BX, UNITED KINGDOM.            |   Email: markr@csc.liv.ac.uk
From: stanleyr@kramden.nyu.edu (Rick Stanley)
Newsgroups: comp.lang.c
Subject: Re: ** PROBLEMS WITH TurboC v1.0/v2.0 **
Date: 11 Oct 92 13:34:08 GMT
Organization: New York University

david@gdstech.grumman.com (David Nettles) writes:


>Whenever I try use TurboC on my current computer, it appears that it
>crashes the computer during the link.

>On my old computer, an Amstrad XT portable with 2-720K floppies, I
>have been using both compilers successfully for quite a while.  But on
>my "new" computer they both crash during the link.

The problem you described may be hardware related.  I would contact Borlands
tech support directly.

I notice you are using Turbo C 1.0.  If this is true, beware that the floating
point portion of that compiler is garbage!  If you don't belive me, try the
following line of code:

printf("The absolute value of -10.0 is %lf\n", -(-10.0));

The answer printed should be 0.0!   The problems seem to have been resolved
in later versions of the compiler.

Rick Stanley 

stanleyr@acf14.nyu.edu
Information Technologies Institute
New York University
Newsgroups: comp.lang.c,comp.lang.fortran,comp.lang.pascal
From: ungar@leland.Stanford.EDU (Jeffrey Ungar)
Subject: Re: Numerical Analysis on a PC-languages?
Organization: DSG, Stanford University, CA 94305, USA
Date: Thu, 15 Oct 92 18:14:38 GMT

In article <dmurdoch.228.719164296@mast.queensu.ca> dmurdoch@mast.queensu.ca (Duncan Murdoch) writes:
>In article <1992Oct14.234123.14543@draco.macsch.com> dnl@convex.is.macsch.com (David Lombard) writes:
>>
>>YOU WOULD HAVE TO BE INCREDIBLY MASOCHISTIC TO DO ANY MANNER OF NUMERICAL
>>WORK IN PASCAL.
>
>That may be true, but Turbo Pascal is a much better platform than standard 
>Pascal, and I do numerical work in it all the time.  I've never used C for 
>this, but I know that the richer data structures of TP would make it very 
                           ^^^^^^^^^^^^^^^^^^^^^^
 These must be completely nonstandard features in TP.

>difficult to port what I've written to C; I'd have to go to C++.  I think 
>Fortran 77 suffers the same problems as plain C, only more so:  data 
>structures are very limited.  I've never taken a close look at Fortran 90, 
>not having a compiler for it available.
>
>There are two main disadvantages to TP.  The first is that it's weaker than 
>Fortran at handling arrays.  The second is that it's difficult to link in 

It doesn't handle them, even though that *would* be standard.

>foreign code.  The poor optimization of Borland TP is not a problem; you 
>can buy an optimizing compiler from Stony Brook.  The total price of TP plus 
>SBP+ is $350, i.e. about what a good Fortran compiler costs, but you get a 
>much  better language.

Except that it is 16-bit and won't run on other platforms, which can be
very disappointing for serious numerical work. You can get great 32-bit
C or F77 compilers for $250(US) with educational discount. Use one or
both of these, and you can easily step up to a Cray, for example, if
(when!) you need to do so.
>
>
>Duncan Murdoch
>dmurdoch@mast.queensu.ca
               ^^^^^^^
Oil thigh na banrighn, na banrighn gobrah! Cha gheill! Cha gheill!
(sorry, i don't remember gaelic spelling)

Jeff Ungar (alumnus of same place)
ungar@embezzle.stanford.edu



Newsgroups: comp.lang.c
From: hjv@phil.ruu.nl (Hendrik Jan Veenstra)
Subject: Re: multidimensional arrays as parameters
Organization: Department of Philosophy, University of Utrecht, The Netherlands
Date: Wed, 14 Oct 1992 16:11:33 GMT

bill@chaos.phys.ualberta.ca (Bill Burris) writes:

>I was wondering how to pass a multidimensional array as a parameter.

>Now for a 2D array if I do the following:

>void fun2d( int * );

>int array2d[10][20];

>main()
>{
>    fun2d( array2d );
>}

>void fun2d( int *data2d )
>{
>    ...
>}

>I get a warring from the compiler for the parameter in the call
>fun2d( array2d );

'array2d' is not a pointer to int but a pointer to pointer to int, since
a 2d-array is an array of *arrays* and not of *ints*.
So the prototype for fun2d() should be
void fun2d( int **data2d );
Now e.g. data2d[2] will be pointing to the third array of 20 ints, and of
course data2d[2][3] will be the fourth int in the third array of ints.

hope this is of any help...

--
Hendrik Jan Veenstra  |  hjv@phil.ruu.nl  |   You look for your dreams in
Dept. of Philosophy   |                   |   heaven, but what the hell are
University of Utrecht |                   |   you supposed to do when they
The Netherlands       |                   |   come true...?
Newsgroups: comp.lang.c,comp.lang.c++,comp.std.c,comp.std.c++
From: dak@tabaqui.informatik.rwth-aachen.de (David Kastrup)
Subject: Re: NULLing a pointer
Organization: Rechnerbetrieb Informatik  /  RWTH Aachen
Date:  9 Oct 92 17:53:08 GMT

Kayvon Z. Sadeghi <KSADEGH@auvm.american.edu> writes:

>1- how do you change the value of a pointer passed to a subroutine? It seems
>to me like you can do almost anything with it except changing the value
>to NULL. This is what I mean:

>pass(struct something *p){
>         p=NULL;
>}

>main(){
>      struct something *apointer;

>      pass(apointer);
>}

You passed the pointer as a value (so it is copied to a local variable
of pass). Changing that pointer in pass has no effect on the original
one. changing the referenced items has, of course. In traditional C,
you would have had to pass a pointer to your pointer, that is:
pass(struct something **p){
	*p =NULL;
}

main(){
	struct something * apointer;
	pass(&apointer);
}

In C++, you can use the original code if you know what you are doing
(of course also if you do not:-') by declaring
void pass(struct something * &p)

C++ will know that it has to pass a reference, then.
From: Jan.Wieck@f1.n100.z60.wlink.nl (Jan Wieck)
Newsgroups: comp.lang.c
Subject: Who is using a file?
Date: Mon, 12 Oct 1992 23:46:26 -0100

Organization: Private Site under Mach386

From article <67527@cup.portal.com>, by Dave-Nuttall@cup.portal.com (David Dave Nuttall):
> Is it possible for a C program running on a System V 3.2 UNIX box
> to determine if any current user is accessing a particular file,
> (or device)?

Like the usage of memory and cpu, open files are registered in a kernel's
table. If you can locate its address (look into the kernel's name table),
you can examine it with a program similar to the ps-command. 


Until later, Jan


-- 
# Any language keeps its own misunderstandings; #
# why shouldn't programming languages do?       #
#                                               #
#            wieck@jwminhh.hanse.de (Jan Wieck) #
From: dave@cs.arizona.edu (Dave Schaumann)
Newsgroups: comp.lang.c
Subject: Life, stderr, and everything (was Re: malloc() as a user...)
Date: 12 Oct 92 17:23:46 GMT
Reply-To: dave@cs.arizona.edu (Dave Schaumann)
Organization: University of Arizona

In article <15040@goanna.cs.rmit.oz.au>, ok@goanna (Richard A. O'Keefe) writes:
>In article <Bvv6pH.Gzy@cs.psu.edu>, ytang@red.crayola.cs.psu.edu (Yuan-Ling Tang) writes:
[...]
>>     if ((p=(SOME_TYPE *)malloc(sizeof(SOME_TYPE))) == NULL) {
>> 	printf("Malloc error.\n");
>> 	exit(0);
>>     }
>
>Bad.
>(1) Standard output might be routed to a file.
>    Use stderr, which is there precisely for you to write error messages.

Perhaps so.  But particularly when I'm debugging, I want my error
messages in *exact* sync with the rest of my program's output.
Perhaps a better solution would be

#ifdef DEBUGGING
#define STDERR stdout
#else
#define STDERR stderr
#endif

and then use `fprintf( STDERR, "whatever..." )'

[discussion of exit() value deleted]

>	if ((p = (SOME_TYPE *)malloc(sizeof *p)) == NULL) {
>	    fprintf(stderr, "Unable to allocate enough memory.\n");
>	    exit(EXIT_FAILURE);
>	}

I'm not particularly fond of either of the error messages presented
here.  "Malloc error." is clearly lacking in specificity, and "Unable
to allocate enough memory" is too vague on the details for me.  I'd
greatly prefer a simple and accurate

	FATAL ERROR: malloc() returns NULL

Although I suppose that this is another thing that should probably be
dealt with under the `#ifdef DEBUGGING' part, since I'm sure a non-
programmer user would prefer something like

	FATAL ERROR: insufficient memory to continue

-- 
What signature?
Newsgroups: comp.lang.c
From: mushroom@netcom.com (Robert Mudry)
Subject: Ok. I'm new and just don't get it.
Keywords: curses windows screens scrolling
Organization: Netcom - Online Communication Services  (408 241-9760 guest) 
Date: Sun, 11 Oct 1992 03:19:35 GMT

Hello,

I'm pretty new at C, but I've rapidly grown bored with 'Hello, World' type
programs and decided to try something a 'bit tougher'.. oh, heck with it,
let me just ask the dumb question..

Is there some way I can get a split screen going without it being so darn
slow (as in curses.. :-) ).. Like how in ircII (ack.. IRC!) the screen seems
to scroll quick enough even though there is constantly some information on
the bottom.. This is under UNIX of the flavour SunOS.. and I want to have this
silly thing output to the top half and bottom half different things, streaming
in like a mud-client.. and have an 'input line' at the bottom.. but curses is
miserable for this.. it either (a) redraws the screen after ever line as it
has to scroll everything upward, or (b) jumps erratically when I set it to
refresh() after every 5 lines or so.. blanking the screen when it hits the
bottom is, well, silly... so, any ideas?

-rjm

-- 
mushroom@netcom.COM

"In general, it is safe and legal to kill your children and their children"
-POSIX Prg Gt, by Donald Lewine, O'Reilly & Associates, 1991, p.110 (On
 process termination)

glurp.
Newsgroups: comp.lang.c
From: singhal@hercules.cis.udel.edu (Amod Singhal)
Subject: What causes "ld: Undefined symbol ___start_libm " error?
Organization: University of Delaware, Newark
Distribution: usa
Date: Sat, 10 Oct 1992 00:57:00 GMT

Hi!

I'm getting an error ( undefined symbol  ___start_libm ) in the linking
step when compiling a software package ftp'd from another 
site. Can someone tell me what causes this error? Do I need 
to set some compiler flags in my makefile? The compilation was
attempted on SunOS 4.1.1 running on Sun IPC and IPX machines.

Please email responses to:  singhal@cis.udel.edu. 

Thanks in advance. A log of the compile session follows. 

----- script session ---------------start----------
make -f Makefile.use  all
rm -f map
cc -o map map.o X11.o version.o ps.o cmd.o debug.o \
    snmp.o ../snmpdk/snmp/libsnmp.a ../snmpdk/bsd/libbsd.a icmp.o  find_file.o getline.o new_string.o upcase.o  -L/usr/lib/X11 -L/usr/lib -lX11
ld: Undefined symbol
   ___start_libm
Compilation failed
*** Error code 2
make: Fatal error: Command failed for target `map'
Current working directory /tmp_mnt/home/singhal/mit/map
*** Error code 1
make: Fatal error: Command failed for target `doall'
----- script session --------------- end ----------
-- 

---------------------------------------------------------
Amod Singhal            |  Graduate Student 
3-13 Four Seasons Pky   |  Dept. of Computer Science
From: jos@and.nl (Jos Horsmeier)
Newsgroups: comp.lang.c
Subject: Re: Strings and integer sizes
Date: 9 Oct 92 09:16:37 GMT
Organization: AND Software BV Rotterdam

In article <395@ulogic.UUCP> hartman@ulogic.UUCP (Richard M. Hartman) writes:
|In article <3568@carrousel.and.nl> jos@and.nl (Jos Horsmeier) writes:
|:[ someone asked about how strings are stored and ... ]
|:
|:So, I agree that a sequence of bytes '1', '2', '3', without a terminating
|:zero-valued byte does _not_ conform to the conceptual string type, but 
|:I disagree that char zoe[3] = "123"; would be an erroneous initializer.
|
|It is erroneous. "123" is a character array constant of four characters,
|'1', '2', '3', '\0'.  Attempting to inialize an array of [3] with this
|is erroneous.   "123" would be a proper initializer for an array of size
|[4] or above.
|
|	char zoe[4] = "123";		// good
|	char zoe[3] = "123";		// possibly not flagged by compiler,
|					// but dangerous.

Taking the risk of starting an `it is, `t is not!' discussion, again,
have a look at ANSI-C 3.5.7 Initialization:

`An array of character type may be initialized by a character string
literal, optionally enclosed in braces. Successive characters of the
character string literal (including the terminating null character
if there is room or if the array is of unknown size) initialize the
elements of the array.'

See? It's perfectly safe (when using an ANSI conformant compiler) to
initialize a character array with a constant string _not_ including
the terminating '\0' byte. I _do_ agree that: char zoe[2]= "abc";
is erroneous, but char zoe[3]= "abc"; is perfectly legal and safe,
but, by definition, the resulting array value is _not_ a string,
because it is _not_ a '\0' byte terminated sequence of of non null-
valued bytes.

kind regards,

Jos aka jos@and.nl
Newsgroups: comp.lang.c
From: wade@nb.rockwell.com (Wade Guthrie)
Subject: Re: Curses to write to stderr, possible?
Organization: Rockwell International
Date: Fri, 9 Oct 1992 23:29:06 GMT


It seems to me that this (i.e., the subject above) is the wrong question.  The
idea of curses is that you don't have a 'stderr'; output to the screen should
go to a window.  What I've done in my code is to create a global varible, named
DebugWin, that is a pointer to a window structure.  This is the first window I
open; I do it immediately after 'initscr'.  Whenever I need to output
to logical-stderr, I do a wprintw(DebugWin,...) (actually, I have a variadic
function that checks to see if DebugWin exists, but that is far too much detail
for this discussion).

Wade
wade@nb.rockwell.com
Newsgroups: comp.lang.c,comp.software-eng,comp.sys.mac.programmer
From: rolf@geoserv (Rolf Wilson)
Subject: Re: Productivity of a C programmer ?
Reply-To: rolf@geoserv.isgs.uiuc.edu
Organization: University of Illinois at Urbana
Date: Fri, 9 Oct 1992 21:33:38 GMT

mhughes@comtch.spk.wa.us (Mark Hughes) writes:

>cjh1@ellis.uchicago.edu (chi ju huang) writes:
>> Could any one show me the light on
>> "Average productivity of a C programmer in today's industry in terms of
>> number of lines of source code produced per day."
>> 
>> What I need is the number (lines/day), the conditions and the assumptions
>> under which the number is derived, and the reliable source of this model.
> 
>  "There ain't no sech animal."  The number of lines per day a programmer 
>turns out can vary incredibly.  Much of the programmer's work is thinking 
>- and that reduces the number of lines, usually.  Other times, the 
>programmer will spew out a hundred or a thousand lines in a day.  One 
>good rule of thumb is that the time to program a project increases 
>geometrically with the size of the program, not linearly.  A small 
>program can be written in 15 minutes...  but a program 20 times larger 
>may take a month...  Etc.
> 
   I once spent a month improving and rewriting a 6000 line program.
When I was done it was 4000 lines long. Was my productivity negative?

>  The best thing to do is to ask a programmer to evaluate how long it 
>will take a team to write your project, and then add 20% or so...
> 
  And then double it. Most programmers are pretty good at estimating
their programming time, but don't seem to realize that they may only
get half of their day to program in.
-- 
Rolf Wilson     Illinois State Geological Survey    rolf@geoserv.isgs.uiuc.edu
Newsgroups: comp.lang.c
From: mjs@hubcap.clemson.edu (M. J. Saltzman)
Subject: Re: Strings and integer sizes
Organization: Clemson University, Clemson SC
Date: Wed, 7 Oct 1992 16:17:04 GMT

In article <1992Oct7.140844.816@newross.Princeton.EDU> blume@tyrolia.Princeton.EDU (Matthias Blume) writes:
>In article <718167097snx@grendel.demon.co.uk>, jes@grendel.demon.co.uk
>(Jim Segrave) writes:
>|> 
>|> In article <9227705.8771@mulga.cs.mu.OZ.AU> fjh@munta.cs.mu.OZ.AU
>(Fergus James HENDERSON) writes:
>|> 
>|> > 
>|> > >Multiple choice question:
>|> > >
>|> > >A string is stored
>|> > >	a. in an array of characters
>|> > >	b. in an array of characters terminated with 0
>|> > >	c. in an array of characters terminated with '\0'
>|> > 
>|> > Well, the answer is:
>|> > 	d. all of the above
>|> 
>|> What about:
>|> 
>|> char zoe[3] = "123";
>|> 
>|> neither b. nor c. applies here.
>|>  
>
>Right, but this is *not* a string at all!  It's a character array together
>with an initializer, which *looks* like a string.
>
>-Matthias

Furthermore, it is an erroneous initializer, since it is longer than 
its target array.

-- 
		Matthew Saltzman
		Clemson University Math Sciences
		mjs@clemson.edu
Newsgroups: comp.lang.c