arrays – Abort trap: 6 error in C?
arrays – Abort trap: 6 error in C?
In this case, the destination greeting
does not have enough space to contain the whole contents of source, so it is an out of bounds access which invokes undefined behavior.
To elaborate, the size of array greeting
is determined by the size of the supplied initializer,
char greeting[] = hello;
in this case, hello
which makes the size as 6, including the null-terminator.
Now, later you try to put a much bigger string into the memory,
strcpy(greeting, greetings, );
where, the source is of 12 bytes in size, whereas, the destination only contains 6. This causes the boundary overrun and the result, UB. The crash (or abort) is one of the possible side-effects of UB.
In this line, you are allocating an array of 5+1 characters:
char greeting[] = hello;
In this line, you are attempting to write 11+1 characters into that array:
strcpy(greeting, greetings, );
arrays – Abort trap: 6 error in C?
In this case,greeting
variable is array of char
with size is 6 (Because hello
and