阵列和动态分配的内存

时间:2014-09-30 21:41:50

标签: c++ arrays

如果我执行以下代码,为什么f1会正常打印0到9,但f2不是?由于C ++数组是指向第一个元素的指针,您是否可以以相同的方式访问和使用动态和静态分配的数组?

void showFloatArray(float f1[10]) {
    for (int i=0; i < 10; i++)
    cout << " " << f1[i];
    cout << endl;
}
float *getFloatArrayOne() {
    float *floatArray = new float[10];
    for (int i=0; i < 10; i++)
    floatArray[i] = (float) i;
    return(floatArray);
}
float *getFloatArrayTwo() {
    float myFloatArray[10];
    float *floatArray = myFloatArray;
    for (int i=0; i < 10; i++)
    floatArray[i] = (float) i;
    return(floatArray);
}
int main()
{
    float *f1 = getFloatArrayOne();
    float *f2 = getFloatArrayTwo();
    showFloatArray(f1);
    showFloatArray(f2);
}

0 个答案:

没有答案