Re: Segmentation fault
On Mon, 02 Mar 2009 00:36:05 -0800, zr wrote:
On Mar 2, 9:01??am, LL <10464...@uts.edu.au> wrote:
#include <stdio.h>
float* dup(float* farr[], int n) {
?? float* fdarr;
?? for (int i=0; i<n; i++) {
?? ?? fdarr[i]=*farr[i];
?? }
?? return fdarr;
}
main() {
?? float *f1=new float(1.0);
?? float *f2=new float(2.0);
?? float *f3=new float(3.0);
?? float* farr_s[]={f1,f2,f3};
?? float* fdarr_s;
?? fdarr_s=dup(farr_s,3);
?? for (int i; i<3; i++) {
?? ?? printf("%f ", fdarr_s[i]); // Segmentation fault
?? }
}
replace:
float* fdarr;
with:
float* fdarr = new float[n];
Still gives segmentation error. I made three changes.
#include <stdio.h>
float* dup(float* farr[], int n) {
float* fdarr=new float[n]; // Change 1
for (int i=0; i<n; i++) {
fdarr[i]=*(farr[i]); // Change 2
}
return fdarr;
}
main() {
float *f1=new float(1.0);
float *f2=new float(2.0);
float *f3=new float(3.0);
float* farr_s[]={f1,f2,f3};
float* fdarr_s=new float[3]; // Change 3
fdarr_s=dup(farr_s,3);
for (int i; i<3; i++) {
printf("%f ", fdarr_s[i]); // should be 1.0 2.0 3.0
}
}