単純な構造体の宣言:
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);
}
理想は、この for ループに入るべきではありません。しかし、それはゴミの価値のせいかもしれません。わからない!