ポインタのポインタがわかりません!!

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
文字列のポインタはだいたい分かるのですが、
他の型ではどうしてそんな事をする必要があるのか分かりません!!
誰か教えて!!
2get

終了
3 :02/01/17 01:52
あんまり無いね。
ポインタを別ルーチンで書き替えたい時、ポインタをポインタ渡しするから
ポインタのポインタになるなー。
その時になれば解るさ。
5 :02/01/17 01:59
C/C++で、動的2次元配列作りたいなら、ポインタのポインタ使うね。

int **ppVector;
*ppVector = (int **)malloc(100);
for(int i=0;i<100;i++)(*ppVector)[i] = (int *)malloc(i);

テストしてないからエラー出るかもだけど、こんな感じね。

あと、Windowsのハンドルと言われてるものは、ぶっちゃけポインタの
ポインタ。
移動よろ。

C言語なら、俺に聞け! <11>
http://pc.2ch.net/test/read.cgi/tech/1009499565/
7 :02/01/17 02:03
あ、荒れてるやん・・・
    ↓
C言語なら、俺に聞け! <11>
http://pc.2ch.net/test/read.cgi/tech/1009499565/
>>1
あなたには必要ありません。
リストやツリーとかはポインタ使うだろが。
配列でもできるが、そんなクソコードは逝ってよしだ。

つか、こんなことでいちいちスレ立てんな。
10 :02/01/17 02:13
>>9
OSでは**使い放題だろ?
11 ◆cplLXSGo :02/01/17 06:23
はー
(´-`).。oO(最近単発質問スレ多い)
ダブルポインタって言わない?
(double *)
関数にイリッフィベクタを渡すとき
16デフォルトの名無しさん:02/01/17 17:36
ポインタのポインタのポインタがわかりません
17デフォルトの名無しさん:02/01/17 17:37
ポインタのポインタのポインタのポインタの…(以下略)
>17
おぉ再帰
...いや、暴走?
19 :02/01/17 18:34
>>16
それは動的3次元配列に使います。

>>17
それは動的・・・(以下略)
知らない間にすんなり使ってる時がある。
とりあえずポインタは偉大
22ハァハァ:02/01/20 21:11
ボインタソ
23デフォルトの名無しさん:02/03/01 23:51
>>5
> あと、Windowsのハンドルと言われてるものは、ぶっちゃけポインタの
> ポインタ。

Macのハンドルが、ポインタのポインタではなかったかな?
Windowsのハンドルは、単なるユニークな32ビット整数ではなかったかと。
Windowsのハンドルを逆参照してもポインタに戻らないと思うよ。

24マジレス:02/03/02 00:01
あのな、スレっていうのは何かテーマがあっていろんな立場の
奴らで話し合ったり、意見交換したりするために立てるものなんだよ。
それが何だ?お前の立てたこのスレはよ?
たかがお前の質問ごときで国中の奴らで盛り上がれとでも言うのか?
何様だ?お前は。
質問スレがあるだろうが、ボケが。
25デフォルトの名無しさん:02/03/02 00:02
>>5
malloc(100)じゃなくて、malloc(sizeof(int **)*100)じゃないか?
ポインタが1バイトってことはないだろ。
もう、バカばっか。春だねえ。
sizeof(int*)とsizeof(int**)のサイズに違いはありまん
とりあえず、
sizeof(int*) = sizeof(int**) = sizeof(char*) = sizeof(long*) = sizeof(float*)
2928:02/03/02 00:09
>>27
おもっきしかぶったな。スマソ。
>>27
当たり前じゃない。
でも、malloc(100)だと100バイトしか取られないだろ?
3130:02/03/02 00:11
ちなみに俺の環境だとポインタは4バイトだから、100個のポインタを配列にいれるのなら、400バイト必要なんだが。
>>30
もう放っといてやれやホゲェ
ポインタって何スか?
・テキストファイルを全部読み込んで、動的メモリに確保
・指定行のデータを取得
・指定行のデータを改変(上書き)
・指定されたファイルに保存

 っていうクラスを作ろうとしたら、多分使うことになるかと。
(vector<CString>などは、(>>1は)使えないだろうと思うし・・)
35終了:02/03/02 01:15
プログラム組むのにポインタは必須!
>>35
「プログラムを組むのに」じゃなくて「C/C++で組むのに」だろ?
その「ポインタ」は一般用法なんでねーのか?
>>37
ああ、うめぼしのことじゃないのか。。。
39デフォルトの名無しさん:02/03/02 02:10
main()
{
int *p;

mem_p(p); // 誤 pは不定値のまま
mem_pp(&p); // 正 pは確保したメモリのアドレス
}

void mem_p(int *p){ p = new int; }
void mem_pp(int **pp){ *pp = new int; }
void mem_p(int *&p){ p = new int; }
ふつうはこう。
41デフォルトの名無しさん:02/03/02 02:14
void mem_p(int *p){ p = new int; } 引数の*p = mainの*p

void mem_pp(int **pp){ *pp = new int; } 引数の*pp = mainの&p
4239=41:02/03/02 02:17
>>40
>>int *&p
これって参照ポインタ?

な〜る
確かにそちらのほうが明確だね
一つ賢くなりましたです
43デフォルトの名無しさん:02/03/02 02:23
void** は移植性を考えると使えないんですか?
何でなのでしょうか?教えてください。

この間から気になって眠れません。
んなこたぁない
むしろ可読性に問題あり
>この間から気になって眠れません。
俺は君が何日前から寝てないのかが気になって眠れそうにないよ。
IUnknown *pUnk;
Hoge->QueryInterface(IID_HOGEHOGE,(void**)pUnk);
な罠。
このスレ育てるの?(w

むしろ、一人歩きかも。
ボインタのポインポインがわかりません。
*って乳輪ですか?それとも肛門ですか?
* * なら乳輪
* なら肛門