Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #106498

Re: Array allocated on stack or heap

From BartC <bc@freeuk.com>
Newsgroups comp.lang.c
Subject Re: Array allocated on stack or heap
Date 2017-03-19 16:51 +0000
Organization A noiseless patient Spider
Message-ID <oamco9$h2k$1@dont-email.me> (permalink)
References (3 earlier) <oahf4s$55b$1@dont-email.me> <oahqce$fhe$1@dont-email.me> <oalpv8$v3o$1@dont-email.me> <oalsds$83n$1@dont-email.me> <oaluoh$sbs$1@dont-email.me>

Show all headers | View raw


On 19/03/2017 12:52, David Brown wrote:
> On 19/03/17 13:12, BartC wrote:

>> In Java, the types {byte, short, int, long} have widths {8, 16, 32, 64}.
>>
>> In C#, the types {sbyte, short, int, long} have widths {8, 16, 32, 64}.
>>
>> In Rust, they seem to be {i8, i16, i32, i64} (you can guess the widths).
>>
>> In Go, they are {int8, int16, int32, int64}.

>> Plus the fact that all types are signed, except for char which may be
>> signed OR unsigned, a fact you might not even know.
>
> If you care whether "char" is signed or unsigned, you have been careless
> in your coding.

Do you mean that someone shouldn't need to care whether 'int' is signed 
or 'unsigned' either?

It can make a significant difference. Or do you mean that 'signed char' 
or 'unsigned char' should be used where it does matter?

In which case it would save a lot of typing is someone knew once and for 
all if 'char' was signed or not.

However, even using 'signed char' or 'unsigned char' can give problems:

    #include <string.h>

    int main(void) {
       unsigned char *s;
       signed char *t;

       strlen(s);
       strlen(t);
    }

With Digital Mars' C, neither of those calls will work:

------------------------------
strlen(s);
         ^
C:\c\c.c(11) : Error: need explicit cast for function parameter 1 to get
from: unsigned char *
to  : char const *
strlen(t);
         ^
C:\c\c.c(12) : Error: need explicit cast for function parameter 1 to get
from: signed char *
to  : char const *
------------------------------

Maybe it's a just a peculiarity of that compiler, but it does seem 
extraordinary that char is compatible with neither signed or unsigned 
char! Or is this some sort of quantum effect where not even the compiler 
itself actually knows the sign of 'char', so it's not able to say one 
way or the other?

Anyway, I doubt such issues come up with any of those other languages I 
listed.

>>
>> Anyone notice an obvious way that this mess could be tidied up?
>
> Yes - you could introduce some size-specific types so that people who
> needed tighter specifications for their integer types could say exactly
> what they wanted.

That's not tidying it up. It's brushing it under the carpet. Or rather, 
laying a new carpet on top of the old.

> Most uses of "char" are for storing letters or characters, or for
> abstract byte storage - the signedness does not matter.

You've never had to compare one character with another? Anyway 'char' is 
extensively used in place of a proper 'byte' type. Since byte values 
tend to be thought of unsigned 8-bit quantities, it seems perverse to 
use a 'char' that is either signed, or that you don't know whether it is 
signed or unsigned. And if you define byte as 'unsigned char' then you 
may run into the problems of having THREE incompatible char types as I 
showed above!

Sorry, but it's still a mess.

-- 
bartc

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Array allocated on stack or heap Prashant Shah <pshah.mumbai@gmail.com> - 2017-03-16 22:58 -0700
  Re: Array allocated on stack or heap Barry Schwarz <schwarzb@dqel.com> - 2017-03-16 23:57 -0700
    Re: Array allocated on stack or heap Mark Storkamp <mstorkamp@yahoo.com> - 2017-03-17 12:44 -0500
      Re: Array allocated on stack or heap Keith Thompson <kst-u@mib.org> - 2017-03-17 11:26 -0700
        Re: Array allocated on stack or heap jacobnavia <jacob@jacob.remcomp.fr> - 2017-03-17 20:38 +0100
          Re: Array allocated on stack or heap Jerry Stuckle <jstucklex@attglobal.net> - 2017-03-17 16:08 -0400
            Re: Array allocated on stack or heap jacobnavia <jacob@jacob.remcomp.fr> - 2017-03-18 00:03 +0100
              Re: Array allocated on stack or heap Jerry Stuckle <jstucklex@attglobal.net> - 2017-03-17 20:54 -0400
  Re: Array allocated on stack or heap John Bode <jfbode1029@gmail.com> - 2017-03-17 12:15 -0700
    Re: Array allocated on stack or heap David Brown <david.brown@hesbynett.no> - 2017-03-17 20:22 +0100
    Re: Array allocated on stack or heap jacobnavia <jacob@jacob.remcomp.fr> - 2017-03-17 20:45 +0100
      Re: Array allocated on stack or heap supercat@casperkitty.com - 2017-03-17 12:59 -0700
      Re: Array allocated on stack or heap David Brown <david.brown@hesbynett.no> - 2017-03-17 21:01 +0100
        Re: Array allocated on stack or heap jacobnavia <jacob@jacob.remcomp.fr> - 2017-03-18 00:12 +0100
          Re: Array allocated on stack or heap jameskuyper@verizon.net - 2017-03-17 16:25 -0700
            Re: Array allocated on stack or heap Keith Thompson <kst-u@mib.org> - 2017-03-17 17:08 -0700
              Re: Array allocated on stack or heap Malcolm McLean <malcolm.mclean5@btinternet.com> - 2017-03-17 17:37 -0700
          Re: Array allocated on stack or heap David Brown <david.brown@hesbynett.no> - 2017-03-19 12:30 +0100
            Re: Array allocated on stack or heap BartC <bc@freeuk.com> - 2017-03-19 12:12 +0000
              Re: Array allocated on stack or heap David Brown <david.brown@hesbynett.no> - 2017-03-19 13:52 +0100
                Re: Array allocated on stack or heap BartC <bc@freeuk.com> - 2017-03-19 16:51 +0000
                Re: Array allocated on stack or heap David Brown <david.brown@hesbynett.no> - 2017-03-20 10:44 +0100
                Re: Array allocated on stack or heap BartC <bc@freeuk.com> - 2017-03-20 12:01 +0000
                Re: Array allocated on stack or heap already5chosen@yahoo.com - 2017-03-20 06:02 -0700
                Re: Array allocated on stack or heap GOTHIER Nathan <nathan.gothier@gmail.com> - 2017-03-20 14:54 +0100
                Re: Array allocated on stack or heap already5chosen@yahoo.com - 2017-03-20 07:28 -0700
                Re: Array allocated on stack or heap David Brown <david.brown@hesbynett.no> - 2017-03-20 16:43 +0100
                Re: Array allocated on stack or heap Keith Thompson <kst-u@mib.org> - 2017-03-20 09:02 -0700
                Re: Array allocated on stack or heap David Brown <david.brown@hesbynett.no> - 2017-03-21 10:11 +0100
                Re: Array allocated on stack or heap already5chosen@yahoo.com - 2017-03-21 02:48 -0700
                Re: Array allocated on stack or heap Keith Thompson <kst-u@mib.org> - 2017-03-21 08:19 -0700
                Re: Array allocated on stack or heap Keith Thompson <kst-u@mib.org> - 2017-03-21 08:17 -0700
                Re: Array allocated on stack or heap supercat@casperkitty.com - 2017-03-21 09:06 -0700
                Re: Array allocated on stack or heap David Brown <david.brown@hesbynett.no> - 2017-03-21 17:32 +0100
                Re: Array allocated on stack or heap Les Cargill <lcargill99@comcast.com> - 2017-03-25 15:14 -0500
                Re: Array allocated on stack or heap Malcolm McLean <malcolm.mclean5@btinternet.com> - 2017-03-25 16:05 -0700
                Re: Array allocated on stack or heap Les Cargill <lcargill99@comcast.com> - 2017-03-25 23:53 -0500
                Re: Array allocated on stack or heap BartC <bc@freeuk.com> - 2017-03-26 12:30 +0100
                Re: Array allocated on stack or heap supercat@casperkitty.com - 2017-03-26 14:09 -0700
                Re: Array allocated on stack or heap BartC <bc@freeuk.com> - 2017-03-26 22:17 +0100
                Re: Array allocated on stack or heap Robert Wessel <robertwessel2@yahoo.com> - 2017-03-26 21:52 -0500
                Re: Array allocated on stack or heap BartC <bc@freeuk.com> - 2017-03-27 13:06 +0100
                Re: Array allocated on stack or heap supercat@casperkitty.com - 2017-03-27 10:10 -0700
                Re: Array allocated on stack or heap Robert Wessel <robertwessel2@yahoo.com> - 2017-03-27 15:56 -0500
                Re: Array allocated on stack or heap bartc <bc@freeuk.com> - 2017-03-27 22:48 +0100
                Re: Array allocated on stack or heap Robert Wessel <robertwessel2@yahoo.com> - 2017-03-27 19:58 -0500
                Re: Array allocated on stack or heap GOTHIER Nathan <nathan.gothier@gmail.com> - 2017-03-20 14:56 +0100
                Re: Array allocated on stack or heap David Brown <david.brown@hesbynett.no> - 2017-03-20 15:34 +0100
                Re: Array allocated on stack or heap supercat@casperkitty.com - 2017-03-20 09:28 -0700
                Re: Array allocated on stack or heap bart4858@gmail.com - 2017-03-20 13:05 -0700
                Re: Array allocated on stack or heap supercat@casperkitty.com - 2017-03-20 13:53 -0700
                Re: Array allocated on stack or heap supercat@casperkitty.com - 2017-03-20 14:26 -0700
                Re: Array allocated on stack or heap BartC <bc@freeuk.com> - 2017-03-20 22:24 +0000
                Re: Array allocated on stack or heap supercat@casperkitty.com - 2017-03-20 15:44 -0700
                Re: Array allocated on stack or heap already5chosen@yahoo.com - 2017-03-21 02:44 -0700
                Re: Array allocated on stack or heap David Brown <david.brown@hesbynett.no> - 2017-03-21 11:15 +0100
                Re: Array allocated on stack or heap BartC <bc@freeuk.com> - 2017-03-21 11:12 +0000
                Re: Array allocated on stack or heap already5chosen@yahoo.com - 2017-03-21 04:23 -0700
                Re: Array allocated on stack or heap scott@slp53.sl.home (Scott Lurndal) - 2017-03-21 13:13 +0000
                Re: Array allocated on stack or heap BartC <bc@freeuk.com> - 2017-03-21 13:38 +0000
                Re: Array allocated on stack or heap David Brown <david.brown@hesbynett.no> - 2017-03-21 15:33 +0100
                Re: Array allocated on stack or heap already5chosen@yahoo.com - 2017-03-21 07:38 -0700
                Re: Array allocated on stack or heap already5chosen@yahoo.com - 2017-03-21 07:35 -0700
                Re: Array allocated on stack or heap scott@slp53.sl.home (Scott Lurndal) - 2017-03-21 15:09 +0000
              Re: Array allocated on stack or heap Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-03-19 13:05 +0000
                Re: Array allocated on stack or heap BartC <bc@freeuk.com> - 2017-03-19 13:27 +0000
                Re: Array allocated on stack or heap GOTHIER Nathan <nathan.gothier@gmail.com> - 2017-03-19 14:26 +0100
                Re: Array allocated on stack or heap Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-03-19 13:34 +0000
                Re: Array allocated on stack or heap GOTHIER Nathan <nathan.gothier@gmail.com> - 2017-03-19 14:35 +0100
                Re: Array allocated on stack or heap Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-03-19 13:36 +0000
                Re: Array allocated on stack or heap BartC <bc@freeuk.com> - 2017-03-19 14:00 +0000
                Re: Array allocated on stack or heap Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-03-19 19:00 +0000
                Re: Array allocated on stack or heap BartC <bc@freeuk.com> - 2017-03-19 19:24 +0000
                Re: Array allocated on stack or heap Ian Collins <ian-news@hotmail.com> - 2017-03-20 08:45 +1300
                Re: Array allocated on stack or heap Keith Thompson <kst-u@mib.org> - 2017-03-19 14:32 -0700
                Re: Array allocated on stack or heap Ian Collins <ian-news@hotmail.com> - 2017-03-20 16:16 +1300
                Re: Array allocated on stack or heap Gareth Owen <gwowen@gmail.com> - 2017-03-20 18:58 +0000
                Re: Array allocated on stack or heap raltbos@xs4all.nl (Richard Bos) - 2017-03-24 09:17 +0000
                Re: Array allocated on stack or heap Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-03-19 20:50 +0000
              Re: Array allocated on stack or heap GOTHIER Nathan <nathan.gothier@gmail.com> - 2017-03-19 14:10 +0100
                Re: Array allocated on stack or heap BartC <bc@freeuk.com> - 2017-03-19 13:38 +0000
                Re: Array allocated on stack or heap GOTHIER Nathan <nathan.gothier@gmail.com> - 2017-03-19 14:49 +0100
                Re: Array allocated on stack or heap luser droog <luser.droog@gmail.com> - 2017-03-20 07:59 -0700
              Re: Array allocated on stack or heap Jerry Stuckle <jstucklex@attglobal.net> - 2017-03-19 10:57 -0400
                Re: Array allocated on stack or heap BartC <bc@freeuk.com> - 2017-03-19 16:14 +0000
                Re: Array allocated on stack or heap Jerry Stuckle <jstucklex@attglobal.net> - 2017-03-19 15:53 -0400
                Re: Array allocated on stack or heap BartC <bc@freeuk.com> - 2017-03-19 20:37 +0000
                Re: Array allocated on stack or heap Jean-Marc Bourguet <jm@bourguet.org> - 2017-03-19 23:09 +0100
                Re: Array allocated on stack or heap BartC <bc@freeuk.com> - 2017-03-19 22:38 +0000
                Re: Array allocated on stack or heap Malcolm McLean <malcolm.mclean5@btinternet.com> - 2017-03-19 16:21 -0700
                Re: Array allocated on stack or heap Ian Collins <ian-news@hotmail.com> - 2017-03-20 16:18 +1300
                Re: Array allocated on stack or heap David Brown <david.brown@hesbynett.no> - 2017-03-20 11:06 +0100
                Re: Array allocated on stack or heap David Brown <david.brown@hesbynett.no> - 2017-03-20 11:00 +0100
              Re: Array allocated on stack or heap supercat@casperkitty.com - 2017-03-19 08:53 -0700
      Re: Array allocated on stack or heap Jerry Stuckle <jstucklex@attglobal.net> - 2017-03-17 16:11 -0400
      Re: Array allocated on stack or heap Keith Thompson <kst-u@mib.org> - 2017-03-17 13:35 -0700
        Re: Array allocated on stack or heap Chad <cdalten@gmail.com> - 2017-03-17 14:00 -0700
          Re: Array allocated on stack or heap jacobnavia <jacob@jacob.remcomp.fr> - 2017-03-17 23:57 +0100
            Re: Array allocated on stack or heap Ian Collins <ian-news@hotmail.com> - 2017-03-18 12:42 +1300
              Re: Array allocated on stack or heap jacobnavia <jacob@jacob.remcomp.fr> - 2017-03-18 00:45 +0100
            Re: Array allocated on stack or heap Chad <cdalten@gmail.com> - 2017-03-18 14:17 -0700
              Re: Array allocated on stack or heap jacobnavia <jacob@jacob.remcomp.fr> - 2017-03-19 19:21 +0100
                Re: Array allocated on stack or heap already5chosen@yahoo.com - 2017-03-19 15:00 -0700
                Re: Array allocated on stack or heap BartC <bc@freeuk.com> - 2017-03-19 22:16 +0000
                Re: Array allocated on stack or heap jacobnavia <jacob@jacob.remcomp.fr> - 2017-03-19 23:57 +0100
                Re: Array allocated on stack or heap Keith Thompson <kst-u@mib.org> - 2017-03-19 16:15 -0700
                Re: Array allocated on stack or heap David Brown <david.brown@hesbynett.no> - 2017-03-20 12:24 +0100
                Re: Array allocated on stack or heap scott@slp53.sl.home (Scott Lurndal) - 2017-03-20 13:24 +0000
            Re: Array allocated on stack or heap David Brown <david.brown@hesbynett.no> - 2017-03-19 13:21 +0100
      Re: Array allocated on stack or heap John Bode <jfbode1029@gmail.com> - 2017-03-17 14:30 -0700
        Re: Array allocated on stack or heap jacobnavia <jacob@jacob.remcomp.fr> - 2017-03-17 23:59 +0100
        Re: Array allocated on stack or heap Jerry Stuckle <jstucklex@attglobal.net> - 2017-03-17 21:02 -0400
        Re: Array allocated on stack or heap David Brown <david.brown@hesbynett.no> - 2017-03-19 13:26 +0100

csiph-web