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


Groups > comp.lang.c > #149241

Re: C String terminator

From T <T@invalid.invalid>
Newsgroups comp.lang.c
Subject Re: C String terminator
Date 2020-01-17 13:44 -0800
Organization A noiseless patient Spider
Message-ID <qvt9ri$8ui$1@dont-email.me> (permalink)
References (17 earlier) <qvt6iq$j73$1@dont-email.me> <qvt6ts$l0m$1@dont-email.me> <FhpUF.71833$co3.19408@fx11.am4> <AzpUF.126441$QS6.40223@fx02.am4> <qvt9ai$5tm$1@dont-email.me>

Show all headers | View raw


On 2020-01-17 13:35, T wrote:
> On 2020-01-17 13:21, Bart wrote:
>> On 17/01/2020 21:02, Bart wrote:
>>> On 17/01/2020 20:54, T wrote:
>>>> On 2020-01-17 12:48, T wrote:
>>>
>>>>>
>>>>> Ben!  I am an idiot when it comes to C.  You
>>>>> got to start out like I am a total noob!
>>>>
>>>> Okay, I looked at it from a bash standpoint instead
>>>> of a mystery language I had no clue about.  And I
>>>> feel dumb.  You were very precise!
>>>>
>>>> $ cd C
>>>> $ vi t.c
>>>> $ gcc -o t t.c
>>>> $ t
>>>> [FOOp@]
>>>>
>>>>
>>>> Question:  why did I get
>>>>      [FOOp@]
>>>>
>>>> and you got
>>>>      [FOO]
>>>> ?
>>>
>>> Maybe you need a 0 terminator byte at the end of your "FOO" string.
>>>
>>> How else will printf know how long it is? All it has is a pointer to 
>>> the 'F' character at the start.
>>>
>>> Presumably, on one computer, there happened to be zero immediately 
>>> after the second 'O'; while on yours, "FOO" happened to be followed 
>>> by 'p' and '@' before it encountered a zero.
>>>
>>> (Haven't read the thread; perhaps it's been mentioned already...)
>>
>> BTW I changed the test program to this:
>>
>> ---------------------------------
>> #include <stdio.h>
>>
>> void foo(const char *s)
>> {
>>      for (int i=0; i<10; ++i)
>>          printf("%d ",*s++);
>>      puts("");
>>
>> }
>>
>> int main(void)
>> {
>>       char str[3] = "FOO";
>>       foo(str);
>> }
>> ---------------------------------
>>
>> This prints the 3 characters codes of F,O,O in the string, plus 7 
>> bytes that follow. Results on various compilers are as follows:
>>
>> bcc:         70 79 79 0 0 0 0 0 0 0
>> tcc:         70 79 79 80 -1 18 0 0 0 0
>> gcc -O0:     70 79 79 112 -14 48 0 0 0 0
>> gcc -O3:     70 79 79 2 0 0 0 0 0 0
>> lcc:         70 79 79 0 0 0 0 0 0 0
>> dmc:         70 79 79 0 -120 -1 24 0 25 33
>> clang -O0:   70 79 79 16 6 64 0 0 0 0
>> clang -O2:   70 79 79 0 48 -120 73 6 -19 127
>> msvc:        70 79 79 -29 -9 127 0 0 0 0
>>
>> The 70, 79, 79 are the F, O and O codes. When those 3 happen to be 
>> followed by 0, then it will appear to work.
>>
>> That is 4 out of 9, but the other 5 won't work. What follows after FOO 
>> is undefined and could be anything, although a random 0 is common.
>>
> 
> 
> Oh my gosh, I have now compiled TWO C programs.
> I AM DANGEROUS!!!!
> 
> :-)
> 
> vi t2.c
> $ gcc -o t2 t2.c
> $ t2
> 70 79 79 -80 17 64 0 0 0 0
> 
> Okay, I know you guys said this clearly and directly,
> but I can be thick as a stone at times: is the
> 
>       -80 17 64 0 0 0 0
> 
> an example of careening until a proper terminator
> is found?
> 
> -T
> 
> 

yes it is careening.  Sorry I am so slow.


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


Thread

C String terminator T <T@invalid.invalid> - 2020-01-14 09:22 -0800
  Re: C String terminator Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2020-01-14 09:32 -0800
    Re: C String terminator T <T@invalid.invalid> - 2020-01-14 09:43 -0800
      Re: C String terminator Bart <bc@freeuk.com> - 2020-01-14 17:53 +0000
        Re: C String terminator David Brown <david.brown@hesbynett.no> - 2020-01-14 20:17 +0100
          Re: C String terminator Bart <bc@freeuk.com> - 2020-01-14 20:01 +0000
      Re: C String terminator Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2020-01-14 09:57 -0800
        Re: C String terminator Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-01-14 11:37 -0800
          Re: C String terminator T <T@invalid.invalid> - 2020-01-15 09:02 -0800
            Re: C String terminator T <T@invalid.invalid> - 2020-01-15 09:38 -0800
              Re: C String terminator T <T@invalid.invalid> - 2020-01-15 09:53 -0800
        Re: C String terminator Manfred <noname@add.invalid> - 2020-01-14 20:48 +0100
    Re: C String terminator chad <cdalten@gmail.com> - 2020-01-15 05:43 -0800
      Re: C String terminator Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2020-01-15 07:12 -0800
      Re: C String terminator Jorgen Grahn <grahn+nntp@snipabacken.se> - 2020-01-15 15:35 +0000
        Re: C String terminator chad <cdalten@gmail.com> - 2020-01-19 06:20 -0800
    Re: C String terminator Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-01-15 10:52 -0800
      Re: C String terminator Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2020-01-15 12:52 -0800
        Re: C String terminator gazelle@shell.xmission.com (Kenny McCormack) - 2020-01-15 20:56 +0000
        Re: C String terminator Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-01-16 02:17 +0000
        Re: C String terminator Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-01-15 21:54 -0800
          Re: C String terminator fir <profesor.fir@gmail.com> - 2020-01-16 02:07 -0800
            Re: C String terminator Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2020-01-16 02:45 -0800
              Re: C String terminator Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2020-01-16 08:21 -0700
                Re: C String terminator Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2020-01-16 08:03 -0800
              Re: C String terminator John Bode <jfbode1029@gmail.com> - 2020-01-16 09:06 -0800
              Re: C String terminator James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-01-16 11:29 -0800
      Re: C String terminator Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-01-16 02:01 +0000
        Re: C String terminator James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-01-15 23:02 -0500
        Re: C String terminator David Brown <david.brown@hesbynett.no> - 2020-01-16 11:15 +0100
          Re: C String terminator Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-01-16 13:07 +0000
        Re: C String terminator Manfred <noname@add.invalid> - 2020-01-17 18:43 +0100
          Re: C String terminator Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-01-21 04:00 -0800
          Re: C String terminator James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-01-21 05:00 -0800
  Re: C String terminator Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2020-01-14 12:36 -0700
    Re: C String terminator Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-01-14 12:05 -0800
      Re: C String terminator Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2020-01-14 13:54 -0700
        Re: C String terminator James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-01-14 15:03 -0800
          Re: C String terminator Thiago Adams <thiago.adams@gmail.com> - 2020-01-15 04:55 -0800
            Re: C String terminator Guillaume <message@bottle.org> - 2020-01-15 20:49 +0100
              Re: C String terminator Thiago Adams <thiago.adams@gmail.com> - 2020-01-15 12:55 -0800
        Re: C String terminator Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-01-14 21:31 -0800
    Re: C String terminator T <T@invalid.invalid> - 2020-01-15 09:28 -0800
      Re: C String terminator T <T@invalid.invalid> - 2020-01-15 09:38 -0800
        Re: C String terminator Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2020-01-15 10:50 -0700
          Re: C String terminator T <T@invalid.invalid> - 2020-01-15 10:17 -0800
        Re: C String terminator T <T@invalid.invalid> - 2020-01-15 09:53 -0800
  Re: C String terminator Richard Damon <Richard@Damon-Family.org> - 2020-01-14 21:43 -0500
  Re: C String terminator "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2020-01-14 22:52 -0800
    Re: C String terminator "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2020-01-14 22:54 -0800
  Re: C String terminator Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-01-15 02:00 -0800
    Re: C String terminator gazelle@shell.xmission.com (Kenny McCormack) - 2020-01-15 10:47 +0000
      Re: C String terminator Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2020-01-15 03:02 -0800
    Re: C String terminator T <T@invalid.invalid> - 2020-01-15 10:19 -0800
      Re: C String terminator Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-01-15 11:33 -0800
        Re: C String terminator T <T@invalid.invalid> - 2020-01-15 12:03 -0800
          Re: C String terminator Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-01-16 01:30 +0000
            Re: C String terminator T <T@invalid.invalid> - 2020-01-15 18:17 -0800
              Re: C String terminator Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-01-16 03:44 +0000
                Re: C String terminator T <T@invalid.invalid> - 2020-01-15 20:33 -0800
          Re: C String terminator fir <profesor.fir@gmail.com> - 2020-01-16 02:26 -0800
  Re: C String terminator Jorgen Grahn <grahn+nntp@snipabacken.se> - 2020-01-15 15:11 +0000
    Re: C String terminator T <T@invalid.invalid> - 2020-01-15 09:32 -0800
      Re: C String terminator Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-01-15 10:47 -0800
        Re: C String terminator T <T@invalid.invalid> - 2020-01-15 10:58 -0800
          Re: C String terminator Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-01-16 01:39 +0000
            Re: C String terminator T <T@invalid.invalid> - 2020-01-15 18:27 -0800
              Re: C String terminator T <T@invalid.invalid> - 2020-01-15 19:03 -0800
              Re: C String terminator Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-01-16 03:28 +0000
                Re: C String terminator T <T@invalid.invalid> - 2020-01-15 19:33 -0800
                Re: C String terminator T <T@invalid.invalid> - 2020-01-15 19:38 -0800
                Re: C String terminator Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-01-16 13:31 +0000
                Re: C String terminator T <T@invalid.invalid> - 2020-01-16 09:09 -0800
                Re: C String terminator Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2020-01-16 10:27 -0700
                Re: C String terminator T <T@invalid.invalid> - 2020-01-16 10:54 -0800
                Re: C String terminator Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-01-16 20:59 +0000
                Re: C String terminator T <T@invalid.invalid> - 2020-01-16 14:11 -0800
                Re: C String terminator Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-01-16 20:17 +0000
                Re: C String terminator T <T@invalid.invalid> - 2020-01-16 14:14 -0800
                Re: C String terminator Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-01-16 23:45 +0000
                Yes, Ben makes house calls (Was: C String terminator) gazelle@shell.xmission.com (Kenny McCormack) - 2020-01-16 23:57 +0000
                Re: C String terminator T <T@invalid.invalid> - 2020-01-17 11:28 -0800
                Re: C String terminator Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-01-17 20:46 +0000
                Re: C String terminator T <T@invalid.invalid> - 2020-01-17 12:48 -0800
                Re: C String terminator T <T@invalid.invalid> - 2020-01-17 12:54 -0800
                Re: C String terminator Bart <bc@freeuk.com> - 2020-01-17 21:02 +0000
                Re: C String terminator Bart <bc@freeuk.com> - 2020-01-17 21:21 +0000
                Re: C String terminator T <T@invalid.invalid> - 2020-01-17 13:35 -0800
                Re: C String terminator T <T@invalid.invalid> - 2020-01-17 13:44 -0800
                Re: C String terminator fir <profesor.fir@gmail.com> - 2020-01-17 15:03 -0800
                Re: C String terminator fir <profesor.fir@gmail.com> - 2020-01-17 15:06 -0800
                Re: C String terminator Ike Naar <ike@sdf.lonestar.org> - 2020-01-18 07:30 +0000
                Re: C String terminator Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2020-01-17 16:06 -0500
                Re: C String terminator Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2020-01-17 16:23 -0500
                Re: C String terminator T <T@invalid.invalid> - 2020-01-17 13:37 -0800
                Re: C String terminator Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-01-21 04:10 -0800
                Re: C String terminator Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-01-21 10:41 -0800
                Re: C String terminator Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2020-01-17 01:55 -0800
                Re: C String terminator Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-01-17 09:52 -0800
                Re: C String terminator T <T@invalid.invalid> - 2020-01-17 11:29 -0800
                Re: C String terminator Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-01-16 18:21 +0000
                Re: C String terminator T <T@invalid.invalid> - 2020-01-16 10:50 -0800
                Re: C String terminator Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-01-16 20:50 +0000
                Re: C String terminator T <T@invalid.invalid> - 2020-01-16 14:17 -0800
  Re: C String terminator Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-01-15 09:59 -0800
  Re: C String terminator T <T@invalid.invalid> - 2020-01-15 10:15 -0800
  Re: C String terminator T <T@invalid.invalid> - 2020-01-18 21:42 -0800
    Re: C String terminator T <T@invalid.invalid> - 2020-01-19 22:13 -0800
  Re: C String terminator Bonita Montero <Bonita.Montero@gmail.com> - 2020-01-21 19:49 +0100
  Re: C String terminator John Bode <jfbode1029@gmail.com> - 2020-01-21 15:33 -0800
    Re: C String terminator Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-01-21 23:19 -0800
    Re: C String terminator Bonita Montero <Bonita.Montero@gmail.com> - 2020-01-22 08:39 +0100
      Re: C String terminator chad <cdalten@gmail.com> - 2020-01-22 06:59 -0800
        Re: C String terminator Bonita Montero <Bonita.Montero@gmail.com> - 2020-01-22 18:44 +0100

csiph-web