Problems in array access

Utkarsh Singh utkarsh190601@gmail.com
Tue Aug 31 08:39:37 GMT 2021


On 2021-08-31, 09:28 +0100, Jonathan Wakely <jwakely.gcc@gmail.com> wrote:

> On Tue, 31 Aug 2021 at 09:11, Utkarsh Singh wrote:
>>
>> Hello GCC mailing list,
>>
>> In one of my friend's C programming class, they asked him a question on
>> the topic of array bounds based on the follwing code snippet:
>>
>> #include <stdio.h>
>>
>> int main(void)
>> {
>>         char str[] = {'G' , 'C' , 'C' };
>>         str[3] = '\0' ; /* Isn't this invalid? */
>>         printf("%s\n", str);
>> }
>>
>> In an ideal case, str[3] should be a case of out-of-bound array access.
>> But when compiling the above with -Wall option flag GCC shows no
>> warning.  So, am I missing something?
>
> This question belongs on the gcc-help mailing list, not here.

Sorry! I will keep this in mind.

> The code has undefined behaviour.
>
> Some GCC warnings depend on checks done during optimization. GCC will
> warn about this code if you use -Wall -O2 and you will get a runtime
> error if you compile with -fsanitize=undefined

Great! And thank you for a quick reply.

-- 
Utkarsh Singh
http://utkarshsingh.xyz


More information about the Gcc mailing list