在从R via .Call调用的C代码中,我将double *vector
传递给函数
用数字填充vector
。我不知道vector
有多大
结束,所以我跟踪它的元素数量vector_size
并使用
S_realloc(vector, vector_size+64, vector_size, vector_size * sizeof(double))
在必要的情况下将尺寸增加64倍。 R CMD check
抱怨
关于S_realloc
的第一个元素是double *
而不是char *
。能够
我在这种情况下使用S_realloc
?如何增加a的长度?
数字向量?
答案 0 :(得分:4)
这应该像添加演员一样简单
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)
每<{3}}个编写R扩展程序。
编辑:更正了初始评论,请参阅第6.1.2节。