【发布时间】:2021-11-16 07:53:06
【问题描述】:
为什么b 不持有1., 2.?
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#define LEN 2
void main() {
double a[LEN] = {1, 2};
double* b = malloc(LEN * sizeof(*b));
memcpy(b, a, LEN);
for (size_t i = 0; i < LEN; i++)
{
printf("%.2f ", b[i]);
}
printf("\n");
}
相反,我得到了
> gcc code.c
> ./a.out
0.00 0.00
【问题讨论】:
-
这能回答你的问题吗? Copy array to dynamically allocated memory
-
它确实表明 memcpy 是正确的工具,但显然在这里获得正确的大小是问题。