Can you pass an int array by reference to a function and modify
selective elements?
Here is my code:
#include <stdio.h>
#define COLUMNSIZE 30
#define ASIZE 5
int calcfldpos(int *row, int *column, int *numArray)
{
int i=0;
printf("\tbefor e-->++numArray=%d\ n",*numArray );
*numArray+=4;
printf("\t after-->++numArray=%d\ n",*numArray );
return(1);
}
int updintArray(int *numArray[5])
{
int i=0;
printf("\nupdin tArray\n");
for ( i=0; i<ASIZE; i++ )
{
printf("numArra y[%d]=%d\n",i,numArr ay[i]);
*numArray[i]+=1;
printf("numArra y[%d]=%d\n\n",i,numA rray[i]);
}
return(0);
}
int main(int argc,char** argv)
{
int row=10;
int column=0;
int i=0;
int numArray[ASIZE];
numArray[0]=0; numArray[1]=1; numArray[2]=2; numArray[3]=3;
numArray[4]=4;
for ( i=0; i<ASIZE; i++ )
{
printf("numArra y[%d]=%d\n",i,numArr ay[i]);
}
printf("before->calcfldpos:\tn umArray[2] = %d\n",numArray[2]);
calcfldpos(&row ,&column,&numAr ray[2]);
printf(" after->calcfldpos:\tn umArray[2] = %d\n",numArray[2]);
for ( i=0; i<ASIZE; i++ )
{
printf("numArra y[%d]=%d\n",i,numArr ay[i]);
}
printf("Now updintArray\n") ;
updintArray(&nu mArray);
return(0);
}
I'm getting a core dumb on this statement:
*numArray[i]+=1;
I do not know how the pointer are messed up?
Any comment would be appreciated.
selective elements?
Here is my code:
#include <stdio.h>
#define COLUMNSIZE 30
#define ASIZE 5
int calcfldpos(int *row, int *column, int *numArray)
{
int i=0;
printf("\tbefor e-->++numArray=%d\ n",*numArray );
*numArray+=4;
printf("\t after-->++numArray=%d\ n",*numArray );
return(1);
}
int updintArray(int *numArray[5])
{
int i=0;
printf("\nupdin tArray\n");
for ( i=0; i<ASIZE; i++ )
{
printf("numArra y[%d]=%d\n",i,numArr ay[i]);
*numArray[i]+=1;
printf("numArra y[%d]=%d\n\n",i,numA rray[i]);
}
return(0);
}
int main(int argc,char** argv)
{
int row=10;
int column=0;
int i=0;
int numArray[ASIZE];
numArray[0]=0; numArray[1]=1; numArray[2]=2; numArray[3]=3;
numArray[4]=4;
for ( i=0; i<ASIZE; i++ )
{
printf("numArra y[%d]=%d\n",i,numArr ay[i]);
}
printf("before->calcfldpos:\tn umArray[2] = %d\n",numArray[2]);
calcfldpos(&row ,&column,&numAr ray[2]);
printf(" after->calcfldpos:\tn umArray[2] = %d\n",numArray[2]);
for ( i=0; i<ASIZE; i++ )
{
printf("numArra y[%d]=%d\n",i,numArr ay[i]);
}
printf("Now updintArray\n") ;
updintArray(&nu mArray);
return(0);
}
I'm getting a core dumb on this statement:
*numArray[i]+=1;
I do not know how the pointer are messed up?
Any comment would be appreciated.
Comment