#include <stdio.h>
struct data
{
char a[100*1024];
};
struct test
{
void * pc;
struct test * next;
};
struct data dd;
struct data * pd = ⅆ
void *mall(struct data *p)
{
return (void *)(&(p->a[0]));
}
int main(void)
{
struct test * p = mall(pd);
p->pc = "testasdfsadfasdfasdfasdfsadfsadfsadfsadfsadfsadfsadfsadfasdfsadfsadfsadfsadfsadfasdfsadfsadfsadfsadf";
printf("%p\n%p\n", &dd.a[0], p->pc); // <-- line 27
return 0;
}
我不明白如何分配给主内存中的内存,我认为没有内存分配给P - > PC,但程序可以正常运行。如果你认为内存是全局数组,那么第27行的输出如何不一样呢?C内存分配
尝试打印地址。 –
调用未定义的行为。 – Olaf
我已经完成了。 p的地址与a相同,但不是pc。而dd.a [0]没有赋值。所以我不知道p-> pc存储的内容在哪里。 – ponypaver