Olası Çoğalt:
May I treat a 2D array as a contiguous 1D array?İki boyutlu bir diziye tek boyutlu bir adama erişmek yasal mıdır?
Aşağıdaki kodu düşünün:
int array2d[10][10];
int *array1d = array2d[0];
ben işe yaramaz bir uygulama duymadım, ama yasal olduğunu array1d
aracılığıyla array2d
erişim ve işleme? Standartın hangi bölümü buna izin veriyor? Standart önleme uygulamalarında, ikinci seviye dizilerinin her biri arasında fazladan boşluk veya dolgu yapmaktan başka bir şey var mı (gerekli değil ama yine de)?
Bonus soru: , int[100]
erişiminin reinterpret_cast
veya C stili bir gerektirmeyen bir yolu var mı?
Bunu, her zaman dahili olarak tek boyutlu bir dizi olarak saklayan bir sınıfa sarabilirsiniz. – chris
C++ gizlenmiş yarışma için kaydoldum :)? – ScarletAmaranth
Değil int * array1d = array2d [0]; 'biraz daha basit? – ildjarn