如何编辑以下某个字符?

How do I edit a certain char in the following?

所以我有以下代码:

char *something = (char *) calloc(LENGTH, sizeof(char));

长度定义为10。 我在记忆中像这样想象它:

| [0] | [1] | [2] | [3] | [4] | [5] | [6] | [7] | [8] | [9] | \0 |

如何在不定义整个字符的情况下更改 [1]?然后可以定义[2],以此类推...

每次更改不得影响之前的更改!

谢谢!

The length is defined as 10. I'm imaging it like this in memory

不正确。首先,只有 10 个字节(您的图片显示 11),其次,所有字节都填充了 '[=11=]'calloc() 填充)。

How would I change [1] without defining the whole char? And then be able to define [2], and so on...

"change" 如果你的意思是分配值,那么你可以像这样索引它们:

something[1] = 'a';
something[5] = 'q';

等等。

但请记住,将它用作 C 字符串可能不起作用(例如,使用 printf("%s", something); 打印 something),因为存在中间零字节。

您的代码

char *something = (char *) calloc(LENGTH, sizeof(char));

给你 10(不是 11)个字节,全部初始化为 0。

你可以在这里改变你想要的任何字节

something[1] ='?';

如果您使用标准例程,例如printf 这当然会在第一个字节中找到 '0' 并将其解释为字符串的结尾。

完成后不要忘记释放它

free(something);