我简化了以下功能,在使用它后尝试删除数组时,我得到了段错误。
float * MyService::innerFunction(MyClass& feature) {
float* target = new float[1];
target[0] = feature.getValue();
target[1] = 1;
return target;
}
float MyService::outerFunction(MyClass& feature){
float* input = innerFunction(feature);
...
delete[] input; <- seg fault
return result;
}
答案 0 :(得分:1)
你的阵列太小了。
float* target = new float[1];
只分配一个元素,但您分配了两个元素。
target[1] = 1;
会腐蚀你的头脑。
所以你需要这样做:
float* target = new float[2];