1

C ++では、通常、memset次のようにすべての要素をゼロに設定するために使用します。

int a[5][5];
memset(a,0,sizeof(a));

すべての int 要素を1に設定したい場合はどうすればよいですか?

memset(a, 1, sizeof(a));

すべてのバイトを1に設定することはできないため、機能しません。

memsetすべてelements( NOT JUST BYTES )を特定のvalue.

4

1 に答える 1

1

usingは機能しますが、しばしば悪い形式と見なされるstd::fillusing に頼る必要があります。reinterpret_cast<>

#include <algorithm>

int a[5][5];
std::fill(reinterpret_cast<int*>(a),
          reinterpret_cast<int*>(a)+(5*5),
          1);

または、最初の要素のアドレスを取得することもできますが、これも同様に扱いにくいです:

std::fill(&a[0][0],&a[0][0]+(5*5),1);
于 2013-06-13T04:48:46.757 に答える