#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