Dinamik olarak ayrılan bir dizi yapıya sahibim. Bu diziye bir işaretçi, diğer işlevlere geçirilir.Bir dizinin -1 elemanına erişim c
struct body{
char* name;
double mass;
// ... some more stuff
};
body *bodies = malloc(Number_of_bodies*sizeof(body));
bir dizi boyutunu bilmek gerekir, bu yüzden dizi (ilk yapı) 0'ıncı elemanının içinde yapılar birinde boyutunu depolamak ediyorum.
bodies[0].mass = (double)Number_of_bodies;
Sonra diğer fonksiyonlarda bu işaretçi kullandığınızda Şimdi, veri 0 elemanın başlamalıdır bodies[1]
return (bodies+1);
yani dizinin 1 elemana işlevinden bir işaretçi döndürür .
body *new_bodies = (bodies+1); //Just trying to show what happens effectively when i pass to another function
new_bodies[0] = *(bodies+1); //I Think
Ben bodies[0]
idi ilk yapı, görmek istiyorsanız
new_bodies[-1]
erişmek zorunda diğer işlevlerde anlama geliyor?
Bu yapabileceğim bir şey mi? İlk yapıya nasıl erişebilirim?
Evet. Emin. Neden olmasın? 'a [b]' * (a + b) 'olarak tanımlanır. – Deduplicator
C [Negative array indexes in C?] Ile ilişkili (http://stackoverflow.com/q/3473675/1708801) –