Wednesday, April 6, 2011

Array Allocation Subscript Number

Quick question regarding how memory is allocated.

If someone were to allocate 20 chars like this:

char store[20];

does this mean that it allocated 20 char type blocks of memory, or that it allocated char type blocks of memory starting with 0 and ending with 20. The difference is that the first example's range would be from store[0] to store[19], whereas the second example's range would be from store[0] to store[20].

From stackoverflow
  • [0] to [19] (20 elements, that is)

  • The first - char store[20] allocates 20 chars, from 0 to 19.

  • It allocates memory for 20 chars, i.e. valid indices go from 0 to 19.

  • It means it allocated one block of memory large enough to hold 20 chars (from index 0 to 19)

    trikker : Thanks. Setting this as answer because you were first.
    ChristopheD : Hm, I think he was last ;-) But hey, no problem ;-)
    trikker : Yeah you're right. Was thinking backwards.

0 comments:

Post a Comment