ページ 11

配列にポインタのアドレスをいれれるかどうか?

Posted: 2009年10月19日(月) 18:48
by ファファファファウスト
タイトル通りです。

d[0] = &point

みたいなことはできるんでしょうか?

Re:配列にポインタのアドレスをいれれるかどうか?

Posted: 2009年10月19日(月) 18:57
by バグ
試してみては?

Re:配列にポインタのアドレスをいれれるかどうか?

Posted: 2009年10月19日(月) 18:59
by ファファファファウスト
やったんですが・・・
移植性のないポインタ変換
と警告がでまして・・・

Re:配列にポインタのアドレスをいれれるかどうか?

Posted: 2009年10月19日(月) 19:24
by バグ
多分、型が違うんじゃないかと…

int a[5] = {0, 1, 2, 3, 4};
int *p[5] = {&a[0], &a[1], &a[2], &a[3], &a[4]};

これならどうですか?

Re:配列にポインタのアドレスをいれれるかどうか?

Posted: 2009年10月19日(月) 19:25
by バグ
あ、失礼、ポインタのアドレスですね。

int* point;
int** d[3];
d[0] = &point;

こうですかね。

Re:配列にポインタのアドレスをいれれるかどうか?

Posted: 2009年10月19日(月) 19:45
by box
> 移植性のないポインタ変換
> と警告がでまして・・・

そのときのソースコードは?

Re:配列にポインタのアドレスをいれれるかどうか?

Posted: 2009年10月19日(月) 19:59
by ファファファファウスト
まずはソース上げますね
void asc(int *point,int size)
{
int i,j;
int f[65535],s[65535],p[65535];
unsigned d[10000];
d[0] = &point;
これは型変換しつつデータを配列にいれようとしてかきました

バグさんありがとうございます!!試してみます!!

Re:配列にポインタのアドレスをいれれるかどうか?

Posted: 2009年10月19日(月) 20:11
by box
> void asc(int *point,int size)
> 	unsigned d[10000];		
> 	d[0] = &point;

これだと、バグさんの回答とは話が違ってきます。
こういうことが起きるから、「質問するときにソースを見せて」となるわけです。

pointが指している領域の先頭要素をd[0]に格納したければ、

d[0] = point[0];

です。

Re:配列にポインタのアドレスをいれれるかどうか?

Posted: 2009年10月19日(月) 20:17
by ファファファファウスト
申し訳ないです・・・・・以後気をつけます

できました!!!ありがとうございます!!