Hello all and Prof. Brian Ripley ,
Sorry about my incautiousness, I use the tips, but is happen same problems.
Below the R code.
################################################################
rspcplot <- function(file1="dg_01.lab.txt"){
if(is.null(n))
stop("You need first run the function cluster")
file<-"dg_01.lab.txt"
aux<-file1
file1<-pmatch(file1,file)
if(is.na(file1)){
matrix=loadMatrix(file,n)
}
else{
matrix=loadMatrix(aux,n)
}
matrixc<-correct(matrix)
#merge2(matrixc)
nrow=nrow(matrixc)
ncol=ncol(matrixc)
ntemp=getTemp()
out <- .C("merge2",matrixc,nrow, ncol,ntemp,outMerge=as.integer
(0),outHeight=as.integer(0),PACKAGE="rspc")
##########################################################################
Below the C code.
##########################################################################
void merge2(int *nmat,int nrow,int ncol, int *ntemp,int ntam, int *out, int
*height){
int row,col,*temp,i,j,k,n3,tam,x,aux2,n1;
row = nrow;
col = ncol;
int *temp1,*temp2,*temp3,*temp4;
temp1 = (int*)Calloc(col,int);
printf("OK1 \n");
temp2 = (int*)Calloc(col,int);
printf("OK2 \n");
temp3 = (int *)Calloc(col,int);
printf("OK3 \n");
temp4 = (int *)Calloc(col,int);
if(temp4 == NULL){
printf("\n\n No Memory4!");
exit(1);
}
printf("OK4\n");
int *cvector;
cvector = (int *)Calloc(col,int);
if(cvector == NULL){
printf("\n\n No Memory5!");
exit(1);
}
printf("OK5\n");
tam=ntam;
#######################################################################
Output of Work Space:
> rspcplot()
Read 525 items
Read 101 items
OK1
OK2
OK3
OK4
Error in rspcplot() : Calloc could not allocate (145869080 of 4) memory
>
Using the Ruspini data, the values of variables col = 2 and row = 75. I was
thinking that the number of pointers and space of memory are too big.
Thanks All !
On 12/29/05, Prof Brian Ripley <[EMAIL PROTECTED]> wrote:
>
> Rather than trying to reinvent the wheel, why not make use of the
> functions documented in Writing R Extensions, especially Calloc/Free?
>
> And definitely do not call exit() from code linked into R: it is
> antisocial behaviour to terminate your host's process.
>
> Your example is incomplete, and for some values of 'col' you will run out
> of memory. (It is also not legal C as written, since you mix code and
> declarations.)
>
> On Thu, 29 Dec 2005, Marcelo Damasceno wrote:
>
> > Hi all,
> >
> > I have a C code in Linux, it has 7 pointers and compile e run OK, but
> when I
> > run in R happens problems with calloc function, it returns NULL.
> > ###############################################
> >> int *temp1,*temp2,*temp3,*temp4;
> >
> > temp1 = (int *)calloc(col,sizeof(int));
> > if(temp1 == NULL){
> > printf("\n\n No Memory1!");
> > exit(1);
> > }
> >
> > temp2 = (int *)calloc(col,sizeof(int));
> > if(temp2 == NULL){
> > >printf("\n\n No Memory2!");
> > >exit(1);
> > }
> >
> > temp3 = (int *)calloc(col,sizeof(int));
> > if(temp3 == NULL){
> > >printf("\n\n No Memory3!");
> > >exit(1);
> > }
> >
> > temp4 = (int *)calloc(col,sizeof(int));
> > if(temp4 == NULL){
> > printf("\n\n No Memory4!");
> > exit(1);
> > }
> >
> > int *cvector;
> > cvector = (int *)calloc(col,sizeof(int));
> > if(cvector == NULL){
> > printf("\n\n No Memory5!");
> > exit(1);
> > }
> >
> > tam=ntam;
> >
> > int **matrix;
> > matrix=(int**)calloc(row,sizeof(int*));
> > if(matrix == NULL){
> > printf("\n\n No Memory6!");
> > exit(1);
> > }
> >
> > temp=(int*)calloc(tam,sizeof(int));
> > if(temp == NULL){
> > printf("\n\n No Memory7!");
> > exit(1);
> > }
> >
> > iia = (int *)calloc(row-1,sizeof(int));
> > if(iia == NULL){
> > printf("\n\n No Memory8!");
> > exit(1);
> > }
> >
> > iib = (int *)calloc(row-1,sizeof(int));
> > if(iib == NULL){
> > printf("\n\n No Memory9!");
> > exit(1);
> > }
> > ############################################
> > In output !
> >> No Memory5!
> >> [EMAIL PROTECTED] home] $
> >
> > What's wrong?
> > Thanks!
> >
> > --
> > Marcelo Damasceno de Melo
> > Graduando em Ciência da Computação
> > Departamento de Tecnologia da Informação - TCI
> > Universidade Federal de Alagoas - UFAL
> > Maceió - Alagoas - Brasil
> > Projeto CoCADa - Construção do Conhecimento por Agrupamento de dados
> > +55 82 8801-2119
> >
> > [[alternative HTML version deleted]]
> >
> >
>
> --
> Brian D. Ripley, [EMAIL PROTECTED]
> Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
> University of Oxford, Tel: +44 1865 272861 (self)
> 1 South Parks Road, +44 1865 272866 (PA)
> Oxford OX1 3TG, UK Fax: +44 1865 272595
>
--
Marcelo Damasceno de Melo
Graduando em Ciência da Computação
Departamento de Tecnologia da Informação - TCI
Universidade Federal de Alagoas - UFAL
Maceió - Alagoas - Brasil
Projeto CoCADa - Construção do Conhecimento por Agrupamento de dados
+55 82 8801-2119
[[alternative HTML version deleted]]
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel