【发布时间】:2013-05-27 13:27:28
【问题描述】:
我有以下代码:
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
int a[3];
} A;
typedef struct
{
int b;
} B;
typedef struct
{
A a;
B b;
} C;
void getC(C *c_p)
{
C c;
c.a.a[0] = 1;
c.b.b = 1;
memcpy(c_p, &c, sizeof(C));
}
int main()
{
C *c;
getC(c);
}
它说进程返回,我真的找不到原因,我认为 memcpy 部分不起作用,有人可以帮忙吗?
【问题讨论】:
-
您还没有为
main中的c分配内存来指向。你memcpying 指向一个未初始化的指针,调用未定义的行为。 -
为什么进程不返回?这不像你正在做任何可以阻止它返回的事情。