-1

试图将 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 中。很抱歉省略了这些信息:我只是尽量让它尽可能简单(这次走得太远了)

4

1 回答 1

1

很难准确地说出您要做什么。

你是如何打印值的?打印例程printf也取决于类型。

听起来您只想获取浮点输入值。这可以使用scanf 系列来完成。

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);
于 2012-10-09T23:22:48.827 回答