<分区>
所以我有以下代码:
char *something = (char *) calloc(LENGTH, sizeof(char));
长度定义为10。 我在内存中像这样想象它:
| [0] | [1] | [2] | [3] | [4] | [5] | [6] | [7] | [8] | [9] |\0 |
如何在不定义整个字符的情况下更改 [1]?然后可以定义[2],等等……
每次更改都不能影响之前的更改!
谢谢!
<分区>
所以我有以下代码:
char *something = (char *) calloc(LENGTH, sizeof(char));
长度定义为10。 我在内存中像这样想象它:
如何在不定义整个字符的情况下更改 [1]?然后可以定义[2],等等……
每次更改都不能影响之前的更改!
谢谢!
最佳答案
The length is defined as 10. I'm imaging it like this in memory
不正确。首先,只有 10 个字节(您的图片显示 11),其次,所有字节都填充有 '\0'
(calloc()
所做的)。
How would I change [1] without defining the whole char? And then be able to define [2], and so on...
通过“改变”,如果你的意思是分配值,那么你可以像这样索引它们:
something[1] = 'a';
something[5] = 'q';
等等。
但请记住,将它用作 C 字符串可能不起作用(例如,使用 printf("%s", something);
打印 something
)因为中间有零字节。
关于c - 如何编辑以下某个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40682665/