What I'm Essentially trying to do is write a function that can take an array of length n, and make an array of say, length n-2. here is the code i have so far:
float* comp_arr(float vals[], int arr_size, float scale, float dim){
int arr_dim = (int)(arr_size+1-2*scale);
float curvs[arr_dim];
for(int i = scale; i < sizeof(vals)-scale+1; i++){
float cur = comp_cur((i-scale)*dim, vals[i-1], i*dim, vals[i], (i+scale)*dim, vals[i+1]);
int new_index = (int)(i-scale);
curvs[new_index] = cur;
printf("%f\n",cur);
}
return curvs;
}
Ive been calling it in the main function like this:
main(){
float vals [] = {2,3,6,1,7};
float *curvs = comp_arr(vals,5,1.0,1.0);
}
but i get this error:
comp.cpp: In function ‘float* comp_arr(float*, int, float, float)’:
comp.cpp:35:8: warning: address of local variable ‘curvs’ returned [enabled by default]
/tmp/ccrDJjYq.o: In function `comp_arr(float*, int, float, float)':
comp.cpp:(.text+0x590): undefined reference to `__cxa_end_cleanup'
/tmp/ccrDJjYq.o:(.ARM.extab+0xc): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status
I'm pretty new to C++, what am i doing wrong?????
new[]. There are many duplicate questions on the site, but I'm too lazy to go find one.new[], considerstd::vector.