私は、mallocでポインタを使用してシミュレートされた2D配列を持っており、sizeof()がポインタのサイズを返すので、その配列のサイズを取得します。 私のコード(ANSI C):事前にmallocを使用してシミュレートされた配列のサイズを取得
size(rack) //returns 10
size(rack[0]) //returns 15
ありがとう:
void main(){
int s1=10;
int s2=15;
int ** rack=(int**)malloc(s1*sizeof(int**));
for(int i=0; i<s1; i++) rack[i]=(int*)malloc(s2*sizeof(int*));
}
私は機能(システムによって、それを自分で行う場合があります)この方法をしたいです! (詳細はGNU/Linuxを使用しています)
[ポインタ配列へのポインタは実際には2次元配列ではありません](https://stackoverflow.com/q/42094465/694733)。また、ANSI Cは旧式の古いバージョンのCを指します。 Linuxを使用している場合は、C11にアップグレードすることが可能です。 – user694733
良い習慣は、 'malloc'で型を使って' sizeof'を行うのではなく、ポインタが 'malloc(s1 * sizeof * rack)'を指し示すと思われるオブジェクトを使うことです。また、Cでは 'malloc'や友人の返却をキャストすべきではありません。 –
あなたがmallocに間違った量のスペースを割り当てた場合 –