Hi.
I am faced by this silly problem
Error: < Error: Symbol arrSize is not defined in current scope test.C:
Error: Binary operator oprand missing test.C:
*** Interpreter error recovered ***
and I am using Root 5.20/00
test.C
#include <vector>
using namespace std;
#define NMOD 1
#define NCHMOD 1536
#define NCHAN 128
#define NCHIP 12
int disableCompaBit (int det, int mod) {
char *fbad = "/home/Desktop/badChannel/data/noise_mod0.raw";
char *ftrim_r= "/home/Desktop/badChannel/6modTrim/noise.snf00";
char *ftrim = "/home/Desktop/badChannel/6modTrim/CompaCorr/noise.snf";
char *ftrim_w[256];
char line[100];
char line_bad[80];
vector<int> vec_bad;
int badChan;
int trimVal, compa, nil0, nil1, nil2, nil3;
int chanPos, chan;
int channel[NCHIP*NCHAN];
bool flag;
FILE *fb_r = fopen(fbad,"r");
if(fb_r ==NULL) {
printf("Could not read file %s\n",fbad);
return -1;
}
while (fgets(line_bad, 80, fb_r) != NULL) {
sscanf(line_bad, "%d",&badChan);
vec_bad.push_back(badChan);
}
const int size = vec_bad.size();
int bad[size];
printf("vec_bad has %d elements\n", vec_bad.size());
for(int j=0; j<size; j++) {
bad[j] = vec_bad[j];
//printf("bad[%d] %d\n", j, bad[j])
}
sprintf(ftrim_w, "%s%d%d",ftrim, det, mod);
FILE *ft_w = fopen(ftrim_w,"w");
if(ft_w==NULL) {
printf("Could not write file %s\n",ftrim_w);
return -1;
}
FILE *ft_r = fopen(ftrim_r, "r");
if(ft_r == NULL) {
printf("Could not read file %s\n",ftrim_r);
return -1;
}
for(int i=0; i<6; i++) {
if(fgets(line, 256, ft_r) != NULL) {
printf("%s",line);
fprintf(ft_w,"%s",line);
}else {
printf("\n\n error reading initialization file: dac %d not found !!\n\n",i);
return -1;
}
}
for(int ichip=0; ichip<NCHIP; ichip++) {
if(fgets (line, 256, ft_r) != NULL) {
printf("%s",line);
fprintf(ft_w, "%s", line);
}else {
printf("\n\n error reading initialization file: outbuffEnable %i not found !!\n\n",ichip);
return -1;
}
for(int ichan=0; ichan<NCHAN; ichan++) {
if(fgets(line, 256, ft_r)!=NULL) {
//printf("%s", line);
sscanf(line,"%d %d %d %d %d %d", &trimVal, &compa, &nil0, &nil1, &nil2, &nil3);
}
chanPos= ichan+((NCHAN*ichip*(mod+1))+(mod*NCHAN));
channel [chanPos]= chanPos;
if(item_exists(channel[chanPos], bad, size) ) { //problem arises here
compa=0;
printf("chanPos &d compa %d\n", channel[chanPos],compa);
}else {
compa=1;
printf("chanPos &d compa %d\n", channel[chanPos],compa);
}
}
}
fclose(fb_r);
fclose(ft_r);
fclose(ft_w);
return 0;
}
bool item_exists(int item, int[] array, int arrSize) { //problem arises here
for(int k=0; k < arrSize; k++) { //problem arises here
if(array[k] == item)
return true;
}
return false;
}
thanks in advance for the help
f.