【发布时间】:2012-06-15 21:09:53
【问题描述】:
我有一个char * 数组,如下所示:
char * gradient_xpm[] = {"abc", "def", "ghi"};
我需要更改这些字符串的值。
我尝试了strcpy 和= 运算符,但它给了我一个分段错误。
例如:
strcpy(gradient_xpm[1],"jkl");
gradient_xpm[1][2] = 'x';
我什至无法编辑一个字符。如何编辑这些值?
【问题讨论】:
-
这确实比 C++ 更像 C。这是糟糕的 C++ 实践。
-
+1 @DeadMG 但也许他需要使用接受 C 字符串的 C 库?
-
@EitanT 这就是
.c_str()的用途。 -
@KillianDS 如果您需要将可修改的
char数组传递给该函数,则不要(我不是为这种做法辩护,我只是说它可能有另一个原因)。 -
@EitanT,首先仍然不是使用 C 的真正理由。先把它复制过来。