Solved

change constant string

Posted on 2002-07-22
2
225 Views
Last Modified: 2010-04-15
Why the following code can be executed successfully in Unix?
Many books say that constant string can't be changed(strings pointed by pointer is constant). And this code can't be executed in some environment indeed, such as windows.

#include<stdio.h>


main()
{ char *str="hello";
  str[3]='A';
     
printf("string:   %s\n",str);
     
          }
0
Comment
Question by:ww111697
2 Comments
 
LVL 86

Accepted Solution

by:
jkr earned 50 total points
ID: 7169842
>>Why the following code can be executed successfully in Unix?

That depends on the compiler - some place string literals in 'read only' memory areas, causing a segfault. The proper code to apply such a change would be

#include<stdio.h>
#include <string.h>

main()
{

 char *str_const="hello";

 char* str = strdup ( str_const);
 str[3]='A';
   
 printf("string:   %s\n",str);

 free ( str);
   
}

0
 
LVL 84

Expert Comment

by:ozo
ID: 7171049
If the program attyempts to modify a string literal,
the behavior is undefined.
0

Featured Post

NAS Cloud Backup Strategies

This article explains backup scenarios when using network storage. We review the so-called “3-2-1 strategy” and summarize the methods you can use to send NAS data to the cloud

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Preface I don't like visual development tools that are supposed to write a program for me. Even if it is Xcode and I can use Interface Builder. Yes, it is a perfect tool and has helped me a lot, mainly, in the beginning, when my programs were small…
This is a short and sweet, but (hopefully) to the point article. There seems to be some fundamental misunderstanding about the function prototype for the "main" function in C and C++, more specifically what type this function should return. I see so…
The goal of this video is to provide viewers with basic examples to understand and use pointers in the C programming language.
The goal of this video is to provide viewers with basic examples to understand opening and writing to files in the C programming language.

773 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question