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


Groups > comp.lang.c > #109606

Re: error: initializer element is not constant|

From jak <please@nospam.tnx>
Newsgroups comp.lang.c
Subject Re: error: initializer element is not constant|
Date 2017-05-09 19:20 +0200
Organization Aioe.org NNTP Server
Message-ID <oestp7$gkd$1@gioia.aioe.org> (permalink)
References (5 earlier) <ufYPA.134876$QR.27637@fx34.am4> <oersjf$1q6f$1@gioia.aioe.org> <37hQA.7825$Aj7.1467@fx33.am4> <oessve$f4k$1@gioia.aioe.org> <zKmQA.84548$jo6.54626@fx33.iad>

Show all headers | View raw


Il 09/05/2017 19:10, Scott Lurndal ha scritto:
> jak <please@nospam.tnx> writes:
>> Il 09/05/2017 12:47, bartc ha scritto:
>
>>
>> No, I do not want anything different. Only I can not understand the
>> reason why the compiler wants the initializer to be constant. When I
>> write this:
>>
>> char *Phrase[] =
>> {
>>    NULL, /*1*/
>>    NULL, /*2*/
>>    NULL, /*3*/
>>    NULL  /*4*/
>> };
>>
>> I ask the compiler to allocate for me 4 contiguous memory areas, each
>> large to contain a pointer. Each pointer is char type and then uses this
>> step in its arithmetic. If at runtime I can modify, with new values,
>> each of the 4 pointers I have declared; Why does the compiler want it to
>> be constant during the definition?
>
> Because you're defining file-scope static data, which must
> be fully resolved at compile time since it will be stored in
> the executable (ELF, PE/COFF), long before run-time.
>
Ok. Then return to the first question. What information is missing from 
the compiler to solve this?

char *Date = "01-01-80";
char *Phrase[] =
{
    NULL, /*1*/
    Date, /*2*/
    NULL, /*3*/
    NULL  /*4*/
};

...and why does it solve this?

char *DescDate = "Date: ";
char *Date = "01-01-80";
char *CrLf = "\r\n";
char *Text = "Dear friend...";

char **Phrase[] =
{
   &DescDate, &Date, &CrLf,
   &Text, &CrLf
};

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


Thread

error: initializer element is not constant| jak <please@nospam.tnx> - 2017-05-08 09:55 +0200
  Re: error: initializer element is not constant| jak <please@nospam.tnx> - 2017-05-08 10:05 +0200
  Re: error: initializer element is not constant| Noob <root@127.0.0.1> - 2017-05-08 10:38 +0200
    Re: error: initializer element is not constant| jak <please@nospam.tnx> - 2017-05-08 11:55 +0200
      Re: error: initializer element is not constant| bartc <bc@freeuk.com> - 2017-05-08 11:01 +0100
        Re: error: initializer element is not constant| jak <please@nospam.tnx> - 2017-05-08 12:18 +0200
          Re: error: initializer element is not constant| bartc <bc@freeuk.com> - 2017-05-08 12:02 +0100
            Re: error: initializer element is not constant| Keith Thompson <kst-u@mib.org> - 2017-05-08 09:00 -0700
              Re: error: initializer element is not constant| bartc <bc@freeuk.com> - 2017-05-08 17:50 +0100
                Re: error: initializer element is not constant| Keith Thompson <kst-u@mib.org> - 2017-05-08 11:37 -0700
                Re: error: initializer element is not constant| bartc <bc@freeuk.com> - 2017-05-08 19:49 +0100
                Re: error: initializer element is not constant| Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-05-08 20:13 +0100
                Re: error: initializer element is not constant| Keith Thompson <kst-u@mib.org> - 2017-05-08 12:44 -0700
                Re: error: initializer element is not constant| scott@slp53.sl.home (Scott Lurndal) - 2017-05-08 20:24 +0000
            Re: error: initializer element is not constant| jak <please@nospam.tnx> - 2017-05-09 09:54 +0200
              Re: error: initializer element is not constant| jak <please@nospam.tnx> - 2017-05-09 10:15 +0200
              Re: error: initializer element is not constant| GOTHIER Nathan <nathan.gothier@gmail.com> - 2017-05-09 12:12 +0200
              Re: error: initializer element is not constant| bartc <bc@freeuk.com> - 2017-05-09 11:47 +0100
                Re: error: initializer element is not constant| jak <please@nospam.tnx> - 2017-05-09 19:06 +0200
                Re: error: initializer element is not constant| scott@slp53.sl.home (Scott Lurndal) - 2017-05-09 17:10 +0000
                Re: error: initializer element is not constant| jak <please@nospam.tnx> - 2017-05-09 19:20 +0200
                Re: error: initializer element is not constant| Barry Schwarz <schwarzb@dqel.com> - 2017-05-09 10:35 -0700
                Re: error: initializer element is not constant| jak <please@nospam.tnx> - 2017-05-09 20:04 +0200
                Re: error: initializer element is not constant| Keith Thompson <kst-u@mib.org> - 2017-05-09 11:57 -0700
                Re: error: initializer element is not constant| supercat@casperkitty.com - 2017-05-09 12:50 -0700
                Re: error: initializer element is not constant| Keith Thompson <kst-u@mib.org> - 2017-05-09 12:54 -0700
                Re: error: initializer element is not constant| bartc <bc@freeuk.com> - 2017-05-09 20:15 +0100
                Re: error: initializer element is not constant| "James R. Kuyper" <jameskuyper@verizon.net> - 2017-05-09 14:13 -0400
                Re: error: initializer element is not constant| Keith Thompson <kst-u@mib.org> - 2017-05-09 11:41 -0700
              Re: error: initializer element is not constant| Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-05-09 12:16 +0100
              Re: error: initializer element is not constant| Keith Thompson <kst-u@mib.org> - 2017-05-09 08:11 -0700
          Re: error: initializer element is not constant| Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-05-08 12:12 +0100
            Re: error: initializer element is not constant| bartc <bc@freeuk.com> - 2017-05-08 13:45 +0100
              Re: error: initializer element is not constant| Keith Thompson <kst-u@mib.org> - 2017-05-08 09:04 -0700
              Re: error: initializer element is not constant| Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-05-08 19:53 +0100
                Re: error: initializer element is not constant| bartc <bc@freeuk.com> - 2017-05-08 20:44 +0100
                Re: error: initializer element is not constant| Noob <root@127.0.0.1> - 2017-05-09 09:27 +0200
              Re: error: initializer element is not constant| Tim Rentsch <txr@alumni.caltech.edu> - 2017-05-09 07:10 -0700
            Re: error: initializer element is not constant| Keith Thompson <kst-u@mib.org> - 2017-05-08 09:30 -0700
  Re: error: initializer element is not constant| John Bode <jfbode1029@gmail.com> - 2017-05-08 08:05 -0700

csiph-web