考虑下列代码,这段代码试图计算数组a中所有元素的和,其中元素的 数量由参数length给出。
/* WARNING: This is buggy code */
float snm_elements(float a[], unsigned length) {
int i;
float result =0;
for (i= 0; i <= length-1; i++)
result += a[i];
return result;
} 当参数length等于0时,运行这段代码应该返回0. 0。但实际上,运行时会遇 到一个内存错误。请解释为什么会发生这样的情况,并且说明如何修改代码。

