小编Aru*_*har的帖子

这是一个未定义的行为吗?

所以我只是想问一下,添加注释行时这是一个未定义的行为.虽然没有编译错误,但它们都给出了相同的答案.我想知道有什么不同.地址是否被a的地址覆盖.另外如果有人这样做(即为b分配内存),那将memcpy()是一个很好的解决方案.这可能是一个微不足道的例子,但我想了解其中的区别.

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int *a;
    int *b;
    a=malloc(sizeof(int));
    //b=malloc(sizeof(int));
    int c=6;
    a=&c;
    b=a;
    printf("%d\n",*b);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c malloc pointers undefined-behavior

2
推荐指数
1
解决办法
116
查看次数

标签 统计

c ×1

malloc ×1

pointers ×1

undefined-behavior ×1