c定义函数,两个方法返回结构不一致:
结构体定义:
typedef struct DoubleArrayStruct{
int size;
double arr[10];
} ;
typedef struct DoubleArray {
int size;
double* arr;
} ;
方法定义:
double sumDoubleArray(const DoubleArrayStruct * arrayStruct) {
if (NULL == arrayStruct || arrayStruct->size == 0) {
return 0;
}
double sum = 0;
for (int i = 0; i < arrayStruct->size; i++) {
double val = arrayStruct->arr[i];
sum += val;
}
return sum;
}
double sumArray(const DoubleArray* arrayStruct) {
if (NULL == arrayStruct || arrayStruct->size == 0) {
return 0;
}
double sum = 0;
for (int i = 0; i < arrayStruct->size; i++) {
double val = arrayStruct->arr[i];
sum += val;
}
return sum;
}
当结构体中size赋值为10,数组赋值1,2,3,4,5,6,7,8,9,10时,调用两个方法返回结果不一样:
sumDoubleArray求值: 9.543656185244807E179
sumArray求值: 50.0
为啥不一样呢?
