配列について

[戻る]
ごんた 2003/10/17(金) 14:55:08
悩んでいます。
配列a[i]に値が1から6まで入っているとして、配列aをもとに1から3までを配列bとし
て取り出すことができたのですが4から6までを配列cとして取り出せません。
c[0]=4
c[1]=5
c[2]=6 
としたいのですが、何かいい方法はございませんか。
宜しくお願いします。

επιστημη [E-Mail] [HomePage] 2003/10/17(金) 15:23:02
int a[] = { 1, 2, 3, 4, 5, 6};
int* c = a + 3;

for (int i = 0; i < 4; ++i ) {
  printf("c[%d] = %d\n", i, c[i]);
}

ごんた 2003/10/17(金) 15:35:32
[[解決]]
有難うございました。
本当にうまくいきました。
επιστημηのすばやいレスに感謝します。
有難うございました。

tetrapod 2003/10/17(金) 15:54:29
ちなみにこの回答は「配列 c 」を作ってはいませんので念のため。

をよよ 2003/10/17(金) 17:04:42
配列を作る。(std::copyを使う方法もあり)

int a[] = { 1, 2, 3, 4, 5, 6 };
int b[ 3 ];
int c[ 3 ];
for( int i = 0; i < 3; ++i )
{
    b[ i ] = a[ i ];
    c[ i ] = a[ i + 3 ];
}

επιστημη [E-Mail] [HomePage] 2003/10/17(金) 17:09:45
> 配列を作る。(std::copyを使う方法もあり)

int a[] = { 1, 2, 3, 4, 5, 6 };
int b[ 3 ];
int c[ 3 ];

std::copy(a,   a+3, b);
std::copy(a+3, a+6, c);

古いスレッドには追加発言できません。