配列を作る関数を作りたい

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ヘボン

配列を作る関数を作りたい

#1

投稿記事 by ヘボン » 10年前

はじめまして
C++について質問です。
やりたいこととしてはint *bを放り込むと、b[0]~b[9]までの配列を作って内部に0-9までの数字を入れるということをしたいわけです。
調べたところダブルポインタを使うことで関数内でもnewをして配列を作れるらしいというところまではわかりました。
ただ、配列を作ることは出来てもその中に値を入れる方法がわかりません。
回答よろしくお願いします。

コード:

void A(int** a)
{
	*a=new int[10];
	for(int i=0;i<10;i++)
	{
		(a[i])=i;//<-これではエラー
		(*a[i])=i;//<-これは強制終了
		(a[i])=&i;//<-当然ながら配列全てで同じ値になり、関数外では不定値
	}
}
void main()
{
	int *b;
	A(&b);
}

アバター
usao
記事: 1889
登録日時: 12年前
連絡を取る:

Re: 配列を作る関数を作りたい

#2

投稿記事 by usao » 10年前

関数A()の中で,配列の先頭を指しているのは *a ですから,
(*a) = i;
とすればよいのではないでしょうか.

このような記述で混乱する場合には,わかりやすく書いてみればいかがでしょうか.

コード:

void A( int **a )
{
  int *NewArray = int[10];  //とりあえずこうしておけば,for()の部分は悩まなくて済むハズ
  for()...
  *a = NewArray;
}
とか

コード:

int *A()
{
  int *NewArray = int[10];
  for()...
  return NewArray;
}
とか.

閉鎖

“C言語何でも質問掲示板” へ戻る