KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
int main() { char *x = "HelloWorld"; char y[] = "HelloWorld"; x[0] = 'Z'; //y[0] = 'M'; return 0; } In the above program, HelloWorld will be in read-only section(i.e string table). x will be pointing to that read-only section, so trying to modify that values will be undefined behavior. But y will be allocated in stack and HelloWorld will be copied to that memory. so modifying y will works fine. String literals: pointer vs. char array Here is my Question: In the following program, both char *arr and char arr[] causes segmentation fault if the content is modified. void function(char arr[]) //void function(char *arr) { arr[0] = 'X'; } int main() { function("MyString"); return 0; } How it differs in the function parameter context? No memory will be allocated for function parameters?? Please share your knowledge.
Tags (comma-separated)
Save Edits
Cancel