'\0'
が宣言の間に有効になるように、int
配列内の要素の正確な数を見つけなければなりません。値'\0'
は、0
.i.e ('\0' == 0) = true
に相当します。int配列のユーザー定義要素の数を調べる方法は?
#include<iostream.h>
int getsize(int arr[])
{
int i = 0,p=1;// initialized to 1 as, if left un-initialised it suffers from undefined behaviour
while(p!=NULL)
{
i++;p=arrr[i]'
}
return i;
}
それがメインに呼び出されたときのコードのように正常に動作します:
void main()
{
int testarr[10]={0,5};
cout<<"\nThe size is : "<<getsize(testarr);
}
しかしtestarr[]
がint testarr[10]={5,0}
に変更されたときに出力が
The size is : 1
なり問題は、私が残念ながらrである、先史時代のターボC++コンパイラint
0
と'\0'
と同じです。代わりにNULL
を使用しましたが、コードが機能していないようです。私は行方不明のものがありますか?
_user-defined要素とは_ですか? – Danh
一般に、配列の要素を調べることで配列のサイズを見つけることはできません。特殊なケースとして、文字の配列をリテラル文字列に初期化することができます。コンパイラはそれをヌル終了します。これは整数配列ではできません。 –
nullポインタを確認できない – Dhruva