使用 void 指针将浮点数存储到数组中
Use void pointer to store float numbers into array
我是指针的新手,这可能是个愚蠢的问题。
无法使用 void 指针将浮点数存储到浮点数组中。下面是代码和输出:
代码:
int main()
{
int size=5;
float f_array[size];
populate(f_array, size);
// printing array below
}
void populate(void *p, int size)
{
int i;
for(i=0; i<size; i++)
{
scanf("%f", (((float *)p)+i));
}
}
输出:
//输入5个浮点数存入数组
1.2 // 无法输入其他数字并给出以下输出
a[0] = 1
a[1] = garbage value
a[2] = garbage value
a[3] = garbage value
a[4] = 0
#include <stdio.h>
#define SIZE 5
void populate(void *p, int size)
{
int i;
float *array = (float*)p;
for (i = 0; i < size; i++)
{
scanf("%f", &array[i]);
}
}
int main()
{
int i;
float f_array[SIZE];
populate(f_array, SIZE);
//print array
}
我是指针的新手,这可能是个愚蠢的问题。 无法使用 void 指针将浮点数存储到浮点数组中。下面是代码和输出:
代码:
int main()
{
int size=5;
float f_array[size];
populate(f_array, size);
// printing array below
}
void populate(void *p, int size)
{
int i;
for(i=0; i<size; i++)
{
scanf("%f", (((float *)p)+i));
}
}
输出:
//输入5个浮点数存入数组
1.2 // 无法输入其他数字并给出以下输出
a[0] = 1
a[1] = garbage value
a[2] = garbage value
a[3] = garbage value
a[4] = 0
#include <stdio.h>
#define SIZE 5
void populate(void *p, int size)
{
int i;
float *array = (float*)p;
for (i = 0; i < size; i++)
{
scanf("%f", &array[i]);
}
}
int main()
{
int i;
float f_array[SIZE];
populate(f_array, SIZE);
//print array
}