gpt4 book ai didi

c - 应该始终使用 memcpy 吗?

转载 作者:行者123 更新时间:2023-12-04 09:41:05 25 4
gpt4 key购买 nike

我在使用 C 语言和手动内存管理并研究我的代码时注意到了这一点:

假设我有

int *a = malloc(sizeof(int));
int *b = malloc(sizeof(int));
int c = 10;

如果我使用这些数字并执行此操作:

*a = c;

然后 a将指向内存中与 c 分开的不同位置但将具有 c 的值.如果我使用:

memcpy(a, &c, sizeof(int)); 

同样的事情也会发生。不同的指针,相同的值。

我的问题是一个是否比另一个更可取?我知道 char *通常是memcpystrcpy那是用过的,但是对于整数呢?一般指针怎么样?分配是否可以?

附言我也知道

a = &c;

将使a指向与 c 相同的内存位置因此具有它的值(value),但我想这会在a处留下一个悬挂指针自free从未调用 a 的内存所以我不会使用它。

最佳答案

在您的示例中,您应该使用 *a = c; 因为您只想复制一个值。如果需要复制数组的多个连续元素,请使用 memcpy

关于c - 应该始终使用 memcpy 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33712405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com