将堆栈上的局部变量传递给函数调用时,数据损坏怎么可能?
{
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传递给另一个函数,会出现什么问题?有可能吗? 数据腐败?
答案 0 :(得分:0)
好吧,如果Demo()
有错误导致它写在Array
的范围之外,它无法知道任何事情,那当然可以破坏内存,是的。
请注意,您无法在sizeof
内使用Demo()
来确定大小,您必须有一个单独的参数(或结构成员)来说明可用元素的数量。