c - C中的二维字符数组操作

标签 c arrays string char

<分区>

我目前在尝试从外部函数操作二维字符数组时遇到问题。

char* board[] = {
"first\r\n",
"second\r\n",
"third\r\n"
};

在程序的后面,我想用 操作数组中的任意单个字符

board[x][y] = 'A';

然而,当我重新打印电路板时,原始值仍然存在。 期望的结果

board[0][0] = 'A';

应该是:

Airst
Second
Third

但是它仍然打印为原来的“First”,表明板的值从未改变。我该如何解决这个问题以更新董事会的值(value)?

最佳答案

@Stargateur 的评论指出了核心问题。

literal string modification is implemented behavior and generally compile define it as undefined behavior.

使用:

char board[][100] = {
   "first\r\n",
   "second\r\n",
   "third\r\n"
};

关于c - C中的二维字符数组操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49742020/

相关文章:

c - 我无法解决 "segmentation fault: 11"

arrays - 修改继承自 `Array`的类的receiver

arrays - Lua:使用不同的大小写对字符串数组进行排序

python - 替换字符串中的多个字符

r - 将两个数据框与字符串中具有特定模式的列合并

c - 释放双指针

C pthread.h 不工作

java - 在另一个字符串中查找某个字符串并计算它出现的次数

c - StrCat 不适用于单字符字符串 - C

arrays - 使用 VB .net 从进程数组中删除重复项