问题描述
在c中,当用malloc分配一个新的动态内存时:
## DEMO ##
my_list %>%
update_element(which = "mtcars",what = rename,mutate) %>%
update_element(which = "iris",what = select,rename)
是这一行:
int* x = (int*)malloc(sizeof(x));
int y = 10;
等于这一行:
*x = y;
解决方法
[]
运算符的定义是:给定 ex1[ex2]
,保证等价于
*((ex1) + (ex2))
其中 ex1
和 ex2
是表达式。
在你的情况下 x[0]
== *(x + 0)
== *(x)
== *x
。
有关详细信息,请参阅 Do pointers support "array style indexing"?。