gpt4 book ai didi

c - 之前没有用malloc分配内存的情况下进行memcpy

转载 作者:行者123 更新时间:2023-11-30 18:20:25 25 4
gpt4 key购买 nike

我问自己,当我没有为 fptr 分配内存时,为什么这段代码运行良好。我希望它有一个未定义的行为,因为在没有为 fptr 分配内存的情况下执行 memcpy 或?

struct conf *pconf = NULL; 
void (*fptr)(char *, struct conf **);
void *temp = dlsym(dlptr, "config_run_all");
memcpy(&fptr, &temp, sizeof fptr);
fptr("test.conf", &pconf);

最佳答案

您已为fptr分配了内存:

void (*fptr)(char *, struct conf **);`

这将 fptr 声明为函数指针。

memcpy()temp 中的值分配给 fptr,使 fptr 指向temp 指向的函数。

memcpy() 中省略 & 会产生问题;那么当 fptr 尚未设置为指向任何内容时,您将尝试复制到内存。

关于c - 之前没有用malloc分配内存的情况下进行memcpy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22664362/

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