-2

将堆栈上的局部变量传递给函数调用时如何可能发生数据损坏?

{
    int Array[4];

    Array[0] = 1;
    Array[1] = 2;
    Array[2] = 3;
    Array[3] = 4;

    test_struct->arr = Array;
    //(Where arr is a pointer to array)
    Demo(test_struct);
}

如果在这里将 Array 传递给另一个函数会出现什么问题?是否存在数据损坏的可能性?

4

1 回答 1

0

好吧,如果Demo()有错误导致它在 的范围之外写入Array,它对此一无所知,它当然会破坏内存,是的。

请注意,您不能使用sizeofinsideDemo()来计算大小,您必须有一个单独的参数(或结构成员)来告诉可用元素的数量。

于 2013-05-30T09:30:29.710 回答