声明简单结构:
struct s {
char* addr;
};
s *ips;
现在分配该结构数组内存
num = 5
ips = (r *) malloc(num * sizeof(r));
我知道 malloc 只是分配内存,而不是初始化,可能会有垃圾值。
现在我想知道如果我不初始化一个,并尝试访问会发生什么?
//Init for 4 of them
for(int i = 0; i < num-1; i++)
ips[i].addr = strdup("123");
//Accessing un-initialize one:
if(ips[4].addr) {
printf("Accessing uninitialize one and lets say freeing!!!");
free(ips[4].addr);
}
Ideal 不应该进入这个 for 循环。但后来我认为可能是因为垃圾价值。我不确定!