|
这个字符串用一个char * str 指向,且要求把str作为实参传递给一个函数 ,如何防止str指向的字符串被窜改? 比如下面设计的foo() 和 bar() 均没办法防止。 请教熟悉C/C++的高手,谢谢!
- #include <iostream>
- using namespace std;
- void foo(const char * str)
- {
- char * p=(char*)str;
- p[0]='H';
- }
- void bar(const char * const str)
- {
- char * p=(char*)str;
- p[1]='E';
- }
- int main()
- {
- char str[]="hello";
- cout<<str<<endl;
- foo(str);
- cout<<str<<endl;
- bar(str);
- cout<<str<<endl;
- return 0;
- }
复制代码
- ~/coding/test/cpp $ g++ a2.cc
- ~/coding/test/cpp $ ./a.out
- hello
- Hello
- HEllo
复制代码 |
|