Say I do initialize an array like this:
char a[]="test";
What’s the purpose of this? We know that the content might immediately get changed, as it is not allocated, and thus why would someone initialize the array like this?
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
To clarify, this code is wrong for the reasons stated by the OP:
As noted by other responses, the syntax “char a[] = “test”” does not actually do this. The actual effect is more like this:
The first statement allocates a fixed-size static character array on the local stack, and the second initializes the data in it. The size is determined from the length of the string literal. Like all stack variables, the array is automatically deallocated on exiting the function scope.