c - C 中的指针数组

标签 c

我初始化了两个动态数组

int *a = malloc(3 * sizeof(int)); 
int *b = malloc(3 * sizeof(int));

现在我想要什么时候*(b + 1)更改值,*(a + 1)也会改变。但是当 *b*(b + 2)更改它们的值,*a*(a + 2)没有影响。我的意思是:

*(b+1) = 5; // *(a+1) will equal 5

我试过了

a + 1 = b + 1

编译器宣布错误。有人以某种方式告诉我吗?

最佳答案

你不能这样做。

您唯一能做的就是每次更改 *(b+1) 时也更改 *(a+1)。例如:

*(b+1) = 5;
*(a+1) = *(b+1);
// now *(a+1) and *(b+1) both contain 5.

或者,按照通常的写法:

b[1] = 5;
a[1] = b[1];
// now a[1] and b[1] both contain 5.

但我猜这不是你想要的。

关于c - C 中的指针数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43425242/

相关文章:

c - GCC错误但VS没有错误

循环链表

c - 为结构内的结构分配内存

c - sqlite3 关闭语句不起作用

C - 使用 _int16 时出现异常

c++ - 符号表位于何处?

c - 包含字母、空格和整数的 sscanf

c - 编译器是否允许消除无限循环?

c - 将数组分成两半,然后使用 c 将每个部分放入 unsigned int

arrays - gdb : <error reading variable> in array while debugging VS code