S_realloc:如何增加*数值*向量的长度?(第一个参数不是char*)
在通过.Call从R调用的C代码中,我将一个S_realloc:如何增加*数值*向量的长度?(第一个参数不是char*),c,r,memory-management,C,R,Memory Management,在通过.Call从R调用的C代码中,我将一个double*vector传递给 用数字填充向量。我不知道向量会有多大 结束,所以我跟踪它的元素数vector\u size并使用 S_realloc(向量,向量大小+64,向量大小,向量大小*sizeof(双)) 必要时将大小增加64倍R CMD检查投诉 关于S\u realloc的第一个元素是double*而不是char*。可以 我在这种情况下使用了S\u realloc?一个人如何增加一根绳子的长度 数值向量?应该像添加强制转换一样简单 fo
double*vector
传递给
用数字填充向量。我不知道向量会有多大
结束,所以我跟踪它的元素数vector\u size
并使用
S_realloc(向量,向量大小+64,向量大小,向量大小*sizeof(双))
必要时将大小增加64倍<代码>R CMD检查投诉
关于S\u realloc
的第一个元素是double*
而不是char*
。可以
我在这种情况下使用了S\u realloc
?一个人如何增加一根绳子的长度
数值向量?应该像添加强制转换一样简单
foo = S_realloc((char*) p, n1, n2, n3);
其中p
是您的double*p
还有另一种形式
TYPE* Calloc(size_t N, TYPE)
TYPE* Realloc(ANY *P, size_t N, TYPE)
void Free(ANY *P)
每写一个扩展名
编辑:更正了第6.1.2节的初始评论。你好,德克,谢谢你的帮助。最初有两个警告,现在只剩下一个警告:
警告:从'char*'[-Wincompatible pointer types]vector=S_realloc((char*)分配给'double*'的指针类型不兼容vector,
。接下来我将研究Realloc
。你可能也需要作业的演员阵容。这是标准的C语言,你喜欢这个API…嗨,已经使用了vector=(双*)Realloc(vector,vector\u newsize,双)
。谢谢,德克!