Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #112369
| From | Keith Thompson <kst-u@mib.org> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: Splitting strings into arrays with sscanf |
| Date | 2017-06-16 12:31 -0700 |
| Organization | None to speak of |
| Message-ID | <lntw3fafv5.fsf@kst-u.example.com> (permalink) |
| References | <oi14f9$edg$3@dont-email.me> <oi15e9$g8h$1@dont-email.me> <F1V0B.2767$AG1.2130@fx42.iad> |
scott@slp53.sl.home (Scott Lurndal) writes:
> Lew Pitcher <lew.pitcher@digitalfreehold.ca> writes:
[...]
>>Line 7 looks to be...
>> char data[10][4] = "";
>>which describes an array of 10 elements, each containing an array of 4
>>characters. However, your initialization only consists of a single array of
>>1 character (a \0).
>>
>>Apparently, tcc is expecting an initialization that looks something like
>> char data[10][4] = {"","","","","","","","","",""};
It also accepts
char data[10][4] = {""};
or
char data[10][4] = { 0 };
The latter is a valid initializer for an object of any type.
> As "" is of type 'char *', the values assigned to the array will likely
> not be as expected (i.e. either the high-byte (big-endian systems) or the
> low-byte (little-endian systems) of the address to the empty string will
> be stored in data, rather than the expected single NUL byte at column 0
> of each of the ten rows).
No, "" is of type char[1]. Like any array expression, it's implicitly
converted to a pointer expression in most contexts, but a string literal
in an initializer used to initialize an array object is one of the three
explicitly listed exceptions. Using a string literal to initialize an
array of char is perfectly valid, and tcc handles it correctly as far as
I can tell.
> Technically, the correct initializer looks more like:
>
> char data[10][4] = {
> { 0, 1, 2, 3 }, /* row 0 */
> { 4, 5, 6, 7 }, /* row 1 */
> ...
> { 36, 37, 38, 39 }, /* row 9 */
> };
>
> or
> char data[10][4] = {
> { 'a', 'b', 'c', 'd', }, /* row 0 */
> ...
> { 'A', 'B', 'C', 'D', }, /* row 9 */
> };
That's completely unnecessary.
--
Keith Thompson (The_Other_Keith) kst-u@mib.org <http://www.ghoti.net/~kst>
Working, but not speaking, for JetHead Development, Inc.
"We must do something. This is something. Therefore, we must do this."
-- Antony Jay and Jonathan Lynn, "Yes Minister"
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Splitting strings into arrays with sscanf DFS <nospam@dfs.com> - 2017-06-16 13:33 -0400
Re: Splitting strings into arrays with sscanf scott@slp53.sl.home (Scott Lurndal) - 2017-06-16 17:46 +0000
Re: Splitting strings into arrays with sscanf DFS <nospam@dfs.com> - 2017-06-16 14:02 -0400
Re: Splitting strings into arrays with sscanf scott@slp53.sl.home (Scott Lurndal) - 2017-06-16 18:15 +0000
Re: Splitting strings into arrays with sscanf Keith Thompson <kst-u@mib.org> - 2017-06-16 12:28 -0700
Re: Splitting strings into arrays with sscanf Keith Thompson <kst-u@mib.org> - 2017-06-16 12:20 -0700
Re: Splitting strings into arrays with sscanf Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2017-06-16 13:47 -0400
Re: Splitting strings into arrays with sscanf scott@slp53.sl.home (Scott Lurndal) - 2017-06-16 18:01 +0000
Re: Splitting strings into arrays with sscanf Barry Schwarz <schwarzb@dqel.com> - 2017-06-16 12:03 -0700
Re: Splitting strings into arrays with sscanf "James R. Kuyper" <jameskuyper@verizon.net> - 2017-06-16 15:33 -0400
Re: Splitting strings into arrays with sscanf Keith Thompson <kst-u@mib.org> - 2017-06-16 13:16 -0700
Re: Splitting strings into arrays with sscanf Keith Thompson <kst-u@mib.org> - 2017-06-16 12:31 -0700
Re: Splitting strings into arrays with sscanf "James R. Kuyper" <jameskuyper@verizon.net> - 2017-06-16 15:45 -0400
Re: Splitting strings into arrays with sscanf "James R. Kuyper" <jameskuyper@verizon.net> - 2017-06-16 14:07 -0400
Re: Splitting strings into arrays with sscanf "James R. Kuyper" <jameskuyper@verizon.net> - 2017-06-16 14:22 -0400
Re: Splitting strings into arrays with sscanf DFS <nospam@dfs.com> - 2017-06-16 15:36 -0400
Re: Splitting strings into arrays with sscanf "James R. Kuyper" <jameskuyper@verizon.net> - 2017-06-16 17:17 -0400
Re: Splitting strings into arrays with sscanf Barry Schwarz <schwarzb@dqel.com> - 2017-06-16 12:06 -0700
Re: Splitting strings into arrays with sscanf Real Troll <Real.Troll@Trolls.com> - 2017-06-16 17:30 -0400
Re: Splitting strings into arrays with sscanf ike@iceland.freeshell.org - 2017-06-17 16:49 +0000
Re: Splitting strings into arrays with sscanf Richard Damon <Richard@Damon-Family.org> - 2017-06-17 18:25 -0400
csiph-web