Dinamik ayrılmış bellek içinde dinamik bellek ayırma C++ dinamik bellek ayırma ile ilgili bir soru sormak istiyorum. Anlayacağım problemin doğasının basit C++ teknikleri kullanarak çözülmesi kolay, ancak bu özel egzersiz için daha fazla C-benzeri bir yaklaşım kullanmam gerektiğini anlıyorum.C++
typedef struct A{
B *b;
int a;
}
typedef struct B{
C *c;
int x;
}
typedef struct C{
int y;
}
Ve en bu ana varsayalım:
aşağıdakiint main(){
A test;
test.a = 1;
test.b = (B*)calloc(2,sizeof(B));
test.b[0].c = (C*)calloc(2,sizeof(C));
test.b[0].x = 2;
test.b[0].c[0].y = 3;
test.b[0].c[1].y = 4;
test.b[1].c = (C*)calloc(2,sizeof(C));
test.b[1].x = 5;
test.b[1].c[0].y = 6;
test.b[1].c[1].y = 7;
}
Benim soru gibi: ne olur Aşağıdaki yapılar var
: beni örnek alalım? test.b[i].c
için ayrılmış bellek blokları daha önce test.b
için ayrılmış bellek blokları ile çakışacak bir olasılık var mı? Bu mümkün olursa, bunun olmasını nasıl engelleyebilirim? Mümkün değilse, tam olarak nasıl calloc()
bellek ayırır? Sayısal bir örneği gerçekten takdir ediyorum.
Ayrıca emin olmak için NULL olmayan calloc döndürülen işaretçileri de kontrol edebilirsiniz. Daha emniyetli. –