GCC C89嵌套結構分配內存
我在這條線得到一個堆棧轉儲:
strcpy(comp->persons->name, "Joe");
不過,我已經分配的內存,所以不知道爲什麼我會得到它。我在這裏錯過了什麼嗎?
非常感謝任何建議,
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct company
{
struct emp *persons;
char company_name[32];
};
struct emp
{
char name[32];
char position[32];
};
int main(void)
{
struct company *comp;
comp = malloc(sizeof *comp);
memset(comp, 0, sizeof *comp);
strcpy(comp->persons->name, "Joe");
strcpy(comp->persons->position, "Software Engineer");
printf("Company = [ %s ]\n", comp->company_name);
printf("Name ==== [ %s ]\n", comp->persons->name);
printf("Postion ==== [ %s ]\n", comp->persons->position);
free(comp);
return 0;
}