尝试将A复制到B ....
char *A;
double *B;
unsigned int size = 1024;
A = malloc (size*size * sizeof (char));
B = malloc (size*size * sizeof (double));
//fill A here
memcpy (B, &A[0], (size*size * sizeof (char)));
B中的打印值与A中的打印值不匹配。
出了什么问题?
感谢您的帮助!
编辑:这一点是测试memcpy函数的速度与L2缓存的大小有关。我只是想确保上面的代码实际上是将A全部复制到B中。很抱歉忽略这个信息:我只是尽量让它变得简单(这次太过分了)
答案 0 :(得分:1)
很难准确说出你想要做什么。
你是如何打印价值的?像printf
这样的打印例程也取决于类型。
听起来你只想获得浮动输入值。这可以使用scanf family完成。
int num_floats = 10;
double* B = malloc (num_floats * sizeof (double));
int count;
for (count = 0; count < num_floats; count++)
{
printf("Insert float %d: ", count);
scanf("%f", &B[num_floats]);
}
for (count = 0; count < num_floats; count++)
{
printf("Float %d: %f", B[num_floats]);
}
free(B);
如果您尝试将C字符串从char *
转换为浮点数并且不想使用sscanf
,则还可以使用atof。
const char* num_str = "1.01";
double num = atof(num_str);