c - 如何编辑以下某个字符?

标签 c pointers char calloc

<分区>

所以我有以下代码:

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),其次,所有字节都填充有 '\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/

相关文章:

c - 从所有数组元素打印字符串

c++ - 删除 getenv() 返回的字符数组

c++ - 适当使用 boost::shared_ptr?

c - Linux asm ("int $0x0") 与除以零

c - 使用下标打印文本的不同方法

c - 从循环中的指针中提取值

将多位整数从 char 数组转换为整数

c - 来自另一个函数的动态格式化字符串

c - C中的多态函数参数/返回值

c - 如何使用c找到函数的导数