【发布时间】:2013-08-10 08:57:59
【问题描述】:
代码如下:
void fUnc(float b){
//does nothing
}
float* fInit(void){
float result[3];
result[0] = 1.0;
result[1] = 1.0;
result[2] = 1.0;
return result;
}
int main(){
float* a = new float[3];
a = fInit();
fUnc(a[0]);
printf("%f, %f, %f", a[0], a[1], a[2]);
return 0;
}
数组元素的值为-107374176.000000。如果 fUnc(a[0]) [什么都不做] 被注释掉,一切都会很好。有什么问题?
编辑:对代码进行了一些编辑,以便您更好地理解
【问题讨论】:
-
new需要什么? -
你的代码适用于我的 g++
-
对我来说,this works as expected。
-
这是出错的实际代码,还是最小化的示例,说明未最小化时出错的代码?
-
我意识到自您的编辑以来您的问题发生了巨大变化,所有发布的 cmets 和答案均无效。请不要在以后编辑您的问题。
标签: c++ arrays function dynamic arguments