[R] Passing character strings from C code to R
Tuszynski, Jaroslaw W.
JAROSLAW.W.TUSZYNSKI at saic.com
Fri Jul 15 14:57:30 CEST 2005
Hi,
I have a C code which produces array of integers and potentially a string,
and I have problems passing the string out. Here is the relevant part of the
code:
1 PROTECT(Ret = allocVector(INTSXP, n));
2 ret = (int*) INTEGER(Ret); /* get pointer to R's Ret */
3 for(i=0; i<n; i++) ret[i] = data[i];
4 Free(data);
5 i=1;
6 if (comment) { // comment was found
7 n = strlen(comment);
8 if(n>0) { // and it actually have some length
9 Rprintf(" '%s' %i\n", comment, n);
10 PROTECT(Str = allocString(n+1));
11 str = CHAR(STRING_ELT(Str, 0));
12 strcpy(str, comment);
13 Rprintf(" '%s' %i\n", str, n);
14 setAttrib(Ret, install("comm"), Str);
15 i=2;
16 }
17 Free(comment);
18 }
20 UNPROTECT(i);
Print statement in line 9 gives right results, but program crashes before
print statement in line 13.
Any ideas to what am I doing wrong?
Jarek
=====================================\====
Jarek Tuszynski, PhD. o / \
Science Applications International Corporation <\__,|
(703) 676-4192 "> \
Jaroslaw.W.Tuszynski at saic.com ` \
More information about the R-help
mailing list