S_realloc: 如何增加*数字*向量的长度? (第一个参数不是 char*)
S_realloc: How to increase the length of a *numeric* vector? (first argument not char*)
在通过 .Call 从 R 调用的 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
吗?如何增加一个的长度
数值向量?
这应该就像添加演员表一样简单
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)
每 Section 6.1.2 User-controlled Memory 的 编写 R 扩展。
编辑: 更正第 6.1.2 节的初始评论。
在通过 .Call 从 R 调用的 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
吗?如何增加一个的长度
数值向量?
这应该就像添加演员表一样简单
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)
每 Section 6.1.2 User-controlled Memory 的 编写 R 扩展。
编辑: 更正第 6.1.2 节的初始评论。