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


Groups > comp.lang.c > #391870

Re: "array"

From Keith Thompson <Keith.S.Thompson+u@gmail.com>
Newsgroups comp.lang.c
Subject Re: "array"
Date 2025-04-02 18:31 -0700
Organization None to speak of
Message-ID <85a58y58ul.fsf@nosuchdomain.example.com> (permalink)
References <array-20250402114422@ram.dialup.fu-berlin.de>

Show all headers | View raw


ram@zedat.fu-berlin.de (Stefan Ram) writes:
>   Below, an array is allocated dynamically.
>
> #include <stdio.h>
> #include <stdlib.h>
>
> int main( void )
> { char *array_pointer = malloc( 10 * sizeof *array_pointer );
>   if( !array_pointer )return EXIT_FAILURE;
>   *array_pointer = 'a';
>   free( array_pointer ); }
>
>   But is it really an array according to the C spec?

Yes.

This is specfied by the standard in the section describing memory
allocation functions.  In C17, it's in 7.22.3 paragraph 1 (which applies
to all of aligned_alloc, calloc, malloc, and realloc):

    The pointer returned if the allocation succeeds is suitably aligned
    so that it may be assigned to a pointer to any type of object with a
    fundamental alignment requirement and then used to access such an
    object or an array of such objects in the space allocated (until the
    space is explicitly deallocated).

The *effective type* rules are also relevant (section 6.5).  My reading
of that section is that if you access malloc'ed memory as an array, that
memory has the array type as its effective type.

-- 
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
void Void(void) { Void(); } /* The recursive call of the void */

Back to comp.lang.c | Previous | NextNext in thread | Find similar


Thread

Re: "array" Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2025-04-02 18:31 -0700
  Re: "array" "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2025-04-02 22:06 -0700
    Re: "array" Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2025-04-02 23:25 -0700
  Re: "array" Tim Rentsch <tr.17687@z991.linuxsc.com> - 2025-04-03 09:06 -0700

csiph-web