我想double
动态声明一个类型数组,所以这是我的代码
void function(int length, ...) { ... double *a = malloc(sizeof(double) * length); memset(a, 1, sizeof(double) * length); for (int i = 0; i < length; i++) { printf("%f", a[i]); } ... }
当我通过length
时2
,代码不会打印所有1.它只打印以下内容:
7.7486e-304 7.7486e-304
那么,我该怎么做才能修复它?
memset
设置字节.你正试图设置双打.从刚才循环0
到length
并设定每一个到1.0
:
for (int i = 0; i < length; i ++) { a[i] = 1; // or 1.0 if you want to be explicit }