ポインタ死ねよ。

このエントリーをはてなブックマークに追加
49デフォルトの名無しさん
誰か俺にダブルポインタを説明してくれ!!
50デフォルトの名無しさん:2007/04/22(日) 22:06:10
ポインターのポインター
51デフォルトの名無しさん:2007/04/23(月) 01:58:29
死ね
52デフォルトの名無しさん:2007/04/23(月) 11:31:50
>>49
何か特殊なものだと言う考えは捨てて、>50の通りに理解する方がいいよ。
#でないと、「ダブルポインタは判りますがトリプルポインタは自信がありません」なんてことになりかねない。
53デフォルトの名無しさん:2007/04/23(月) 13:31:49
クアドラプルポインタとか
クインティプルポインタとか
セクスタプルポインタとか
セプタプルポインタとか
オクタプルポインタとか
ノナプルポインタとか
ディカプルポインタとか

気付いたら勝手にキャストされて循環参照になってたりとか
54デフォルトの名無しさん:2007/04/23(月) 16:33:01
へクサディキャプルポインタ
55デフォルトの名無しさん:2007/04/23(月) 18:44:32
ポインタないと遅くてメモリ食いまくってやってられんよ
56デフォルトの名無しさん:2007/04/23(月) 18:53:10
ハァ?
57デフォルトの名無しさん:2007/04/23(月) 19:03:13
覚え立ての素人ほどポインタを使いたがるよね
58デフォルトの名無しさん:2007/04/23(月) 20:44:59
charの事をチャラ型って読んでるやつがいる
59デフォルトの名無しさん:2007/04/23(月) 20:46:30
俺はシャア
60デフォルトの名無しさん:2007/04/23(月) 20:56:37
プログラムが趣味の頭のおかしい友人が、
ちゃーが・・・と俺に話しかけてきたときは
福原愛もおかしなあだ名つけられてしまったなと。
その後、charの事だと気づいたが。
61デフォルトの名無しさん:2007/04/23(月) 21:05:42
俺はチャー(竹中尚人)
6261:2007/04/23(月) 21:08:20
よくよく考えたらcharって言葉初めて聞いたのこれだった
おかしいとか言われたけどこりゃ別におかしくないわ

63デフォルトの名無しさん:2007/04/23(月) 22:03:40
ポインタはアンカーのようなもんだと思えば楽じゃね?
飽くまで概念的なもんだが…
64デフォルトの名無しさん:2007/04/23(月) 22:36:09
犬の種類じゃね?
65デフォルトの名無しさん:2007/04/23(月) 22:45:52
「ポインタ=アドレスレジスタ」と考えれば解り易いかも。
昔はポインタに TINY/SMALL/COMPACT/MEDIUM/LARGE/HUGE と言う種類が
あってだなぁ・・・
66デフォルトの名無しさん:2007/04/23(月) 22:49:41
メモリモデルとポインタ種別ごっちゃにするなよ。
67デフォルトの名無しさん:2007/04/23(月) 23:06:08
最近はクラスオブジェクトのポインタばっかだから
68デフォルトの名無しさん:2007/04/24(火) 00:24:53
これで動かない理由がわからない

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void kakuho(char **buf)
{
    *buf = malloc(sizeof(char)*100); //確保したメモリのポインタを渡す
}

int main()
{
    char **buf;

    kakuho(buf); //ポインタのポインタを渡す
    strcpy(*buf, "hello"); //確保したメモリに文字列をコピーする
    printf("%s\n", *buf); //文字列を表示する
    free(*buf); //夏帆したメモリを解放する

    return 0;
}
69デフォルトの名無しさん:2007/04/24(火) 00:35:15
>>68
>これで動かない理由がわからない
君が不勉強だから。

>kakuho(buf); //ポインタのポインタを渡す
初期化していない char** を渡している。

つかこれ、どうみても buf を
  char *buf;
で定義し、kakuho(&buf) で受け取るつもりのコード。
70デフォルトの名無しさん:2007/04/24(火) 00:49:22
Cは基本的に値しかわたせないんだから
値として何が渡されているかを意識すれば
それほど難しくはない。
71デフォルトの名無しさん:2007/04/24(火) 13:25:00
>>68
これじゃダメなの?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void kakuho(char *buf)
{
����buf = malloc(sizeof(char)*100); //確保したメモリのポインタを渡す
}

int main()
{
����char *buf = NULL;

����kakuho(buf); //ポインタを渡す
����if (buf){
���� strcpy(buf, "hello"); //確保したメモリに文字列をコピーする
���� printf("%s¥n", buf); //文字列を表示する
���� free(buf); //確保したメモリを解放する
���� return 0;
����}
return -1;
}
72デフォルトの名無しさん:2007/04/24(火) 13:33:15
>>71
kakuho()に渡されたポインタは、kakuho()からは戻されないのでダメ。
素直にkakuho()から戻り値として戻すか、ポインタのポインタを渡してもらってそこに書き込むか。

char * kakuho_return() {return malloc(100);}
char * buf = kakuho_return();

void kakuho_pointer(char ** bufPointer) {* bufPointer = malloc(100);}
char * buf;
kakuho_pointer(& buf);
73デフォルトの名無しさん:2007/04/24(火) 14:30:06
hoo( void** value )
{
*value = 0xABCDEF;
}

main()
{
void * hage;
hage = NULL;
// hage は、 0x00000000
hoo(&hage);
// hage は、 0x00ABCDEF
}

こういう事ね。
74デフォルトの名無しさん:2007/04/24(火) 17:09:35
>>71
これで42が出力されないのと同程度にダメだ
#include <stdio.h>

void set(int x)
{
  x = 42;
}

int main(void)
{
  int n = 0;
  set(n);
  printf("%d\n", n);
  return 0;
}
75デフォルトの名無しさん:2007/04/25(水) 22:58:40
>>68
ええと。
kakuho() と main() の buf は同名の別変数。
kakuho() から return buf; するか、buf をグローバル変数で確保するか。
前者を推奨。

しかしFAQ的によく目にする話題ですが、自分はここで悩んだっけか・・・忘れてしまいました。
76デフォルトの名無しさん:2007/04/26(木) 23:32:13
>>68のようにダブルポインタで渡されてメモリ確保して返す方法ってないの?
戻り値以外はダメ?
77デフォルトの名無しさん:2007/04/26(木) 23:40:31
特にダブルポインタ渡す意味がわからん
メモリ確保分のポインタだけ渡せばいいのに
78デフォルトの名無しさん:2007/04/26(木) 23:47:48
>>69に書いてあんだろ。
79デフォルトの名無しさん:2007/04/26(木) 23:51:10
char** ってどうやって初期化するの?
80デフォルトの名無しさん:2007/04/27(金) 00:11:58
=0
81デフォルトの名無しさん:2007/04/27(金) 00:15:55
char a=' ';
char* b=&a;
char** c=&b;
ただ、サイズが2byteでいいならの話だけれど。
もっと大きなサイズなら要memset
注)じゃあ、
char* b=" ";
char** c=&b;
でもいいじゃん!というかもしれないが、bはリテラルだからできるだけ避けたほうがいいよ、strシリーズが使えなくなるからね>リテラルメモリ破壊>メモリアサーション
82デフォルトの名無しさん:2007/04/27(金) 10:54:20
>>81
夢物語は結構。
83デフォルトの名無しさん:2007/06/11(月) 15:01:55
characterの略でcharなのはわかるが、a以下がなくなっているので、子音のrのみの発音にならないとおかしいだろう

つまり、"ちゃー"もしくは"きゃー""きゃる""しゃー"などである、そのなかに"きゃら"は無い!

と言ってみるテスト
84デフォルトの名無しさん:2007/06/11(月) 15:13:18
http://www.cmagazine.jp/src/kinjite/c/variable.html#index15
ポインタと配列を混同している
85デフォルトの名無しさん:2007/06/11(月) 15:53:37
>>84

その人ヘッダファイルの使い方知らないのかな?
ttp://www.cmagazine.jp/src/kinjite/cpp/idea.html#index32
86デフォルトの名無しさん:2007/06/11(月) 16:15:58
>>85
読むとバカが感染るから要注意。
87デフォルトの名無しさん:2007/06/13(水) 12:01:29
大学の情報学部とかでも「チャー」って読んでる教授いるよ。
それも、かなりの上級者でも。
でも「キャラ」って読んでる人もかなり多い。

語源からすると「キャラ」が正解っぽいけど
語源を知ってる教授でも(講義でキャラクターから来てると説明してた)
「チャー」と読んでる人もいるからよくわからんな。
88デフォルトの名無しさん:2007/06/13(水) 14:57:47
キャラクタと読めばいいじゃん
89デフォルトの名無しさん:2007/06/13(水) 15:00:17
英語圏でもチャーって読む人いるのかな。
90デフォルトの名無しさん:2007/06/14(木) 00:21:02
>>89
外人の喋ってるケースでは、ちゃーしか聞いたことない。
微妙に最後に巻き舌が入ってるような気もするけど。
91デフォルトの名無しさん:2007/06/14(木) 00:35:41
そもそも読み上げる機会がない
92デフォルトの名無しさん:2007/06/14(木) 07:34:17
「キャラ」ってすごく日本語っぽい読み方じゃね?
それなら「キャー」の方が正しくね?
93デフォルトの名無しさん:2007/06/14(木) 10:50:45
>>92
語の先頭の「ch」を「k」と読むのは珍しい部類だと思うんだが。
94デフォルトの名無しさん:2007/06/14(木) 10:54:42
ちぇる
95デフォルトの名無しさん:2007/06/14(木) 14:00:33
charをキャラと読んでしまう奴は英語のフォニックスを全く理解していないと思うのだが・・
96デフォルトの名無しさん:2007/06/14(木) 15:30:47
charactor→char
キャラクタ→キャラ
と言うロジックかと

かくいう俺はチャー派
97デフォルトの名無しさん:2007/06/14(木) 23:14:56
日本人同士で話すのに、英語のふぉにっくすなんて気にしてもねぇ。
98デフォルトの名無しさん:2007/06/15(金) 00:38:01
DestroyThread(this);
99デフォルトの名無しさん:2007/06/15(金) 12:54:17
>>97
そういうやつに限って、Ironを"アイアン"と呼ぶか"アイロン"と呼ぶかにこだわる(両方正解であり、両方不正解)
100デフォルトの名無しさん:2007/06/15(金) 15:59:26
energyをエネルギーと読んでしまう奴は英語のフォニックスを全く理解していないと思うのだが・・
101デフォルトの名無しさん:2007/06/15(金) 17:11:50
だってドイツ語の音訳だし
102デフォルトの名無しさん:2007/06/15(金) 18:46:36
英語をドイツ語で読むならなおさら
103デフォルトの名無しさん:2007/06/15(金) 19:54:27
charは「文字」と読むべき。
104デフォルトの名無しさん:2007/06/15(金) 20:26:19
じゃあ全部日本語で呼べばいいな
105デフォルトの名無しさん:2007/06/15(金) 23:35:48
途中で切られている事自体が間違い
106デフォルトの名無しさん:2007/06/16(土) 05:35:17
107デフォルトの名無しさん:2007/06/16(土) 08:16:36
>>100 はアポージュースください。って言うんだろうな。
108デフォルトの名無しさん:2007/06/16(土) 10:08:44
アポー
109デフォルトの名無しさん:2007/06/17(日) 13:40:48
int イント
integer インテジャー

スレ違いだが SystemVerilog だと両方あったりしてややこしい。

110デフォルトの名無しさん:2007/06/17(日) 20:54:37
ワンモアセッ
111デフォルトの名無しさん:2007/06/20(水) 11:54:53
ところでポインタ死ねよ
112デフォルトの名無しさん:2007/06/20(水) 15:34:00
>>106
charって焦げるって言う意味なんだな...
するってぇと、文字列になると、処理が面倒くさくなる文字に対しての皮肉でcharなんかな?
113デフォルトの名無しさん:2007/06/20(水) 15:41:15
グラタン
114デフォルトの名無しさん:2007/06/20(水) 15:43:25
チャーのギターをチャーっとやりてぇ〜
115デフォルトの名無しさん:2007/06/20(水) 15:47:21
逆光線
116デフォルトの名無しさん:2007/06/20(水) 15:48:30
妹の飼ってるフェレットの名前がチャー
117デフォルトの名無しさん:2007/06/21(木) 01:15:54
加藤はチャー
118デフォルトの名無しさん:2007/06/22(金) 13:06:10
ポインタさんのおかげで背が3cm伸びました。
こんなに効果があるとは思っていませんでした。
本当にありがとうございました。
119デフォルトの名無しさん:2007/06/22(金) 17:45:17
Pascalの変数宣言がvarなのが納得いかない。なんでvariableじゃないんだ。
integerとかfunctionとか書かせる癖に。
120デフォルトの名無しさん:2007/06/22(金) 18:58:38
それは後から追加された予約語だ
121デフォルトの名無しさん:2007/06/23(土) 00:09:48
>>119
まあ、const とか div とかもあるんだから気にすんな、禿げるぞ。

>>120
後からって...、最初の Pascal には var がなかったのか?
122デフォルトの名無しさん:2007/06/23(土) 01:53:08
          /⌒\
         / / ̄ ̄ ̄ ̄ ̄ ̄\      / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
         |/             \  <  今、ポインタ殺してきた。リアルで。
         /   ∠,,_ノ ソ _ ,,.. _)   \__________________
        /|  '',,((ノ )   ノ (\)  |
        | |     ̄'      ̄ イ   ハァ ハァ
        \| υ     、_/ロロロ)_ ノ
        /         ̄ ̄  \
        /|    υ          \
        ( .|    /  ノ ̄ ̄ ̄)  ノ  \
       ヽ.|◯  |   ノ ̄ ̄ ̄)  /\ ○\
       /.|  o .|  ノ ̄ ̄ ̄) /  \ o゚ \
123デフォルトの名無しさん:2007/06/24(日) 19:45:23
でかした。
124デフォルトの名無しさん:2007/06/29(金) 11:21:34
おしっこちゃー
125デフォルトの名無しさん:2007/07/04(水) 18:43:34
どんだけ〜
126デフォルトの名無しさん:2007/10/12(金) 02:12:05
const unsigned char ch;
int i;

for( i = 0; i < sizeof(ch); i++ )
printf( "%c", *(char*)(ch+i) );

ポインタは、こういう風に書くと愛着がわく。
127デフォルトの名無しさん:2007/10/12(金) 02:14:04
>>126
teisei

const unsigned char ch[] = "01234567890";
128デフォルトの名無しさん:2007/10/12(金) 10:39:40
>>126
何故わざわざキャストするの?
それと、どの辺に愛着が?
愛着が湧かない書き方も見てみたいな。
129デフォルトの名無しさん:2007/10/12(金) 11:16:49
いや、>>126はただのにわかだろうw
130デフォルトの名無しさん:2007/10/12(金) 12:21:31
俄かか膠か
131デフォルトの名無しさん:2007/10/24(水) 04:08:02
132デフォルトの名無しさん:2007/10/24(水) 04:10:34
ポインタはどうやって学ぶべきか
http://pc11.2ch.net/test/read.cgi/tech/1193166476/
133デフォルトの名無しさん:2007/10/24(水) 15:21:10
ポインタ嫌いな人たちは、iteratorも嫌いなの?
134デフォルトの名無しさん:2007/10/25(木) 12:05:06
>>1は、CPUの仕組みを理解していないのではないか?
情報処理やる人は、基礎知識としてCPUの仕組みとマシン語、アセンブラを知ったほうがいい。
135デフォルトの名無しさん:2007/10/25(木) 12:17:08
C ではポインタよく使ってたし、昔は結構凝った pointer arithmetic とかやって
悦に入ってた傾向がある…少したったらで読みづらいし、ポインタ使っても速く
なるわけでもないのであまり使わなくなってきた。Java とかでは明示的には
使わないし。iterator も必要な時には使う(主に STL)けど、結構 [] 使うとき
多いかな。まぁ基本的に楽なものを使うのが一番良いし、それは一人なら自分の好み
でグループならポリシー次第。pointer 嫌いって、Java な人かな。
136デフォルトの名無しさん:2007/10/25(木) 12:18:44
>>135 爆釣オツぅぅ!!
137デフォルトの名無しさん:2007/10/25(木) 13:22:34
ポインタなんか要らないと言う話
http://homepage3.nifty.com/mogami/diary/d0710.html#242
138デフォルトの名無しさん:2007/10/25(木) 13:25:05
コンパイラの方が賢いと思うやつのソースは糞
139デフォルトの名無しさん:2007/10/25(木) 13:59:07
>>136
どこが釣なんだ?普通だと思うが。

>>137 が釣というのならわかるよ。
ただ、本人がいないところで blog なんか吊し上げても
しょうがないと思うけどね。

140デフォルトの名無しさん:2007/10/27(土) 10:35:36
137のリンク先の痛さからすると、本人かも知れんぞw
141デフォルトの名無しさん:2007/10/30(火) 00:28:10
▼ ポインタなんか要らないという話:

なんで最近の言語ですら、みなポインタを持っているのかな。
どうも本物のプログラムを書くにはポインタ(あるいは参照)が
必要であると思われているみたいだけど、それは違う。

ポインタが必要と言うのは要するに速さの問題だ。
昔のコンパイラ技術では人間がポインタを使っていろいろ
最適化する方が速かった。

しかし今なら、この手の機械で追跡可能な最適化は
機械にやらせたほうが速くなるだろう。
ポインタを人間に触らせてしまうと、データのメモリのストアの仕方が
コンパイラの自由にできなくなる。
(レジスタに置くか、ヒープか、スタックか。スタックならどこか。
確保するのは呼び出し側か、解放するのは呼ばれた側かなど。)
これによって最適化がさまたげられるからだ。
142デフォルトの名無しさん:2007/10/30(火) 01:35:29
世の中のソフトってパソコンアプリばっかりじゃないからねぇ
143デフォルトの名無しさん:2007/11/13(火) 17:31:13
>>141

うーむ、ポインタを触るからこそ、CとかC++は何でもできるんじゃねぇの?
144デフォルトの名無しさん:2007/11/13(火) 18:16:11
何でもできるってのが、なんかの機能を実装できるって意味なら
ポインタは全く関係ない
ポインタの存在意義は、「ポインタを使ったコーディングが出来る」以上でも以下でもない
マクロとかテンプレートとかと同じ
145デフォルトの名無しさん:2007/11/15(木) 00:16:59
Cなんて、アセンブラで書くのカッタルイから開発されただけだからね。
アセンブラを知ってる人が使う言語なんだよね。
何か最近はアセンブラのアの字も知らない青二才がいい気になってるけど、
ポインタとかそういう事だから分からない方がおかしいのさ。
ポインタ知りたいならアセンブラやんなきゃどうしようもない。
なんてった、超低級言語から引きずってる概念だからね。

反面、もっと言語として高級なものならポインタを全く気にする必要は無い。
いやポインタと言う概念すら出てくる余地がない。
146デフォルトの名無しさん:2007/11/15(木) 00:26:18
>>145
かったるいというより portability が大きいと思うぞ。
あと、assembler なんか知らなくても C もポインタもわかるよ。
147デフォルトの名無しさん:2007/11/16(金) 01:35:04
>>146
ポータビリティーなんて後付けだよ。
インラインアセンブラなんて初期の頃から付いてるんだから。

ポインタの本来の意味は、アドレスレジスタだね。
148デフォルトの名無しさん:2007/11/17(土) 12:18:35
>>148
経緯的には後付けなのかも知れんが、C が広まった
理由としてはポータビリティーは大きいと思うなぁ。
149デフォルトの名無しさん:2007/11/30(金) 11:47:05
メモリを直接弄る場合にゃ、ポインタは分かりやすい。組み込みだと、ポインタがないと死ねる。
でも、普通のアプリ作る場合には、ポインタは邪魔だよね。
150デフォルトの名無しさん:2007/12/01(土) 06:14:53
専門書読むのに索引あると便利だが、
マンガ読むときには必要ないって感じだな。
151デフォルトの名無しさん:2007/12/01(土) 07:48:21
どちらかと言うと、専門書と言うよりはマニュアル本(或いはもっと極端に規格書)だと思うぞ。
152デフォルトの名無しさん:2007/12/02(日) 11:54:46
うんにゃ、電話帳よ。
153デフォルトの名無しさん:2007/12/02(日) 22:32:06
ドット絵とドローツールとか
154デフォルトの名無しさん:2008/02/08(金) 00:01:53
基底クラスAの派生クラスB, Cがある。
派生クラスのオブジェクトを基底クラスAのリストに入れて取り扱う

class A {
};

class B: public A{
};

class C: public A{
};

void func()
{
list<A*> vec;

vec.push_back(new C);
vec.push_back(new B);
}

これをポインタ無しでかけるのか?
ポインタ不要論を唱える意味がわからん。
155デフォルトの名無しさん:2008/02/08(金) 00:35:43
JavaやC#でも同様の記述はできる。それも難解なテクニック要らず楽勝で。

参照という、ポインタに非常によく似た、というかそれを覆う概念ですがね。
ポインタよりも遥かに安全。
156デフォルトの名無しさん:2008/02/08(金) 01:13:21
>>155
C++でどうやるんだと聞いている。
JAVA, C#以前にC++が出た頃からポインタ不要論ってのはあるんだよ。
ポインタ不要論を唱えている奴の意味がわからん。
157デフォルトの名無しさん:2008/02/08(金) 22:59:25
ポインタ不要論を唱えてた奴等が Java とか C# とか作ったんじゃないのか?
158デフォルトの名無しさん:2008/02/14(木) 03:26:02
C→C++やってるとポインタの知識は必要不可欠。
javaはポインタが無いから始め混乱したよ
159デフォルトの名無しさん:2008/02/14(木) 11:44:58
違う環境、違う言語から移植する時にウンザリする位かな。
実際、最初からC/C++でアプリ作っててポインタの扱いに困る状況ってあまり無いじゃん。
"ポインタ=怖い"のイメージばかり先行してる気がする
160デフォルトの名無しさん:2008/02/14(木) 16:46:49
>>159
pointer arithmetic しだすと結構わかりにくいコードになりやすい
と思うけど。10年位前に自分で書いたコード見ると結構難しかったりする。
そのころは結構ポインタ結構気に入ってたからな…

最近あまり pointer 振り回さないけど。あと、C++ だと iterator
を使うこと多い。これの方が安全かな。C の時代より pointer 使うこと
全然減った。
161デフォルトの名無しさん:2008/02/14(木) 17:20:18
今時ファームとかじゃなきゃ直でポインタ操作なんてしない罠
フレームワーク使ってたらクラス実体の位置ぐらいの意味しかない
162デフォルトの名無しさん:2008/02/16(土) 13:46:04
ポインタ不要論者って、Cのあれが不要って言っているだけで、
Java/C#のように、制限的にして使うのは認めているの?
163デフォルトの名無しさん:2008/04/14(月) 22:30:05
生ポインタの駄目な点
・長さがわからない
・配列かどうかもわからない
・C++ならキャストしただけでアドレスが変わる
・ポインタのポインタを使わないと共有オブジェクトのNULLチェックが…

生ポインタの利点
・インターフェースを使える

修正、追加よろ
164デフォルトの名無しさん:2008/04/15(火) 21:19:43
寿司食いたいフフフフフフフフフフフフフフフフフフフフフフフフ
165デフォルトの名無しさん:2008/04/26(土) 20:58:55
>>163
> インターフェースを使える
どういうこと?
166デフォルトの名無しさん:2008/06/02(月) 03:43:04
C言語なら俺に聞け(入門篇) Part 29
http://pc11.2ch.net/test/read.cgi/tech/1212329099/
167デフォルトの名無しさん:2008/06/02(月) 18:31:48
>>162
そういうレベルじゃなくて、ポインタが理解できないんだよ(涙
168デフォルトの名無しさん:2008/06/02(月) 18:33:45
>>167
(何かを)ポイントするものです。
169デフォルトの名無しさん:2008/06/02(月) 18:59:36
構造化アセンブラだとおもえ!
170デフォルトの名無しさん:2008/06/02(月) 19:04:05
>>163

生ポインタ・・・ハァハァ、フェラチオみたいでそそる
171デフォルトの名無しさん:2008/06/04(水) 16:37:21
**になると辛すぎ(涙
172デフォルトの名無しさん:2008/06/05(木) 00:13:08
ポインタ無いとニンテンドーDSの開発できねぇ
173デフォルトの名無しさん:2008/06/05(木) 01:38:20
>>165
抽象クラスを継承してみそ
174デフォルトの名無しさん:2008/06/05(木) 01:43:26
C++ならstatic_castがあるから、あまりポインタこわくないんだがCだと危険なキャストしかないからなぁ…
Cでのポインタの利用は少し自信が無い
175デフォルトの名無しさん:2008/06/05(木) 23:06:04
DWORD AddressOfNameOrdinals
にWORD*でアクセスすると正常に動作するのにDWORD*だと動かないばかりかDependency Walkerに突っ込むとBSOD
なんなんだよ
176デフォルトの名無しさん:2008/06/06(金) 00:31:04
WORD*でアクセスって何だよ
177デフォルトの名無しさん:2008/06/06(金) 05:31:09
つーか、何でDWORDに対してDWORD *でアクセスすんのよ?
178デフォルトの名無しさん:2008/06/06(金) 13:49:58
DWORD * をインクリメントして、どうこうって操作なんて、実際やらんよなぁ
179デフォルトの名無しさん:2008/06/06(金) 23:53:54
ドトネトの仕事ばっかりしてたら、ポインタ宣言の仕方忘れた。
180デフォルトの名無しさん:2008/06/10(火) 13:07:10
void (*signal(int signum, void (*handler)(int)))(int);

うをりやー
void signal(int signum, void handler[1](int))[1](int);
ほら、簡単でしょう?
181デフォルトの名無しさん:2008/06/10(火) 13:09:32
void signal(int signum, void handler[*](int))[*](int);
なんか、こういう記法を作ればいい気がしてきた。C[*]記法?
182デフォルトの名無しさん:2008/06/10(火) 20:54:21
>>181
これじゃだめだったっけ?
void signal(int signum, void handler[](int))[](int);
183デフォルトの名無しさん:2008/06/10(火) 21:56:16
http://courses.cs.tamu.edu/rabi/past-projects/00c/Group3/libs/stepscanchar.c
> char stepscan[](int port1, int port2, int steps, int direction, int readings, int encodport)

えーっとこれは、、

> char scans[140];

> return scans;

大丈夫なのかw
184デフォルトの名無しさん:2008/06/10(火) 22:00:49
ポインタ返しとかを考えると、もうなんか
char stepscan[](...)
char stepscan(...)[*]
stepscan(...)[*] : char
こうしなきゃダメなんだろうかとか思ってしまう
185デフォルトの名無しさん:2008/06/11(水) 00:27:15
今時4GBくらいメモリ積んでることも余裕なので、一般的な32ビットCPUの全空間丸ごとアクセス可能な状態。
ということは別にNULLだろうがオンメモリなんだぜ。
というか、まあアドレス0000にRAMがあるようなシステムだと、NULL==(void*)0と定義してしまって、NULLを特別扱いすると、
RAMの使用範囲が狭まってしまうな。
186デフォルトの名無しさん:2008/06/11(水) 00:32:44
そこは仮想メモリでアドレス空間を好きに動かせばいい。
187デフォルトの名無しさん:2008/06/11(水) 00:35:27
>>185
それ65系とか68系だね?
188デフォルトの名無しさん:2008/06/13(金) 05:39:11
ストラックポインタ最高!
189デフォルトの名無しさん:2008/06/13(金) 07:54:35
ポインタは死にません。終了。
190デフォルトの名無しさん:2008/06/13(金) 08:15:43
ポインタは死んだ
191デフォルトの名無しさん:2008/06/13(金) 08:40:49
ヽ( `ω´)ノ死にません!
192デフォルトの名無しさん:2008/06/13(金) 09:09:01
ポインタは死んだ。ヌルポ(笑)
193デフォルトの名無しさん:2008/06/14(土) 02:11:28
>>192
ガッ!
194デフォルトの名無しさん:2008/06/15(日) 07:52:10
それよりargがアホ
195デフォルトの名無しさん:2008/06/15(日) 08:34:22
偽装請負を強制する派遣先は倒産させたほうがよくないか
http://life9.2ch.net/test/read.cgi/lifesaloon/1213325765/
http://find.2ch.net/?STR=%B5%B6%C1%F5%C0%C1%C9%E9&COUNT=50
196デフォルトの名無しさん:2008/06/16(月) 06:18:52
ポインタテラ便利
Objective-Cやったらわかる。
197デフォルトの名無しさん:2008/06/16(月) 07:56:57
ポインタは乳首
生きる
198デフォルトの名無しさん:2008/06/19(木) 15:13:45
「ハッカーズ大辞典」にcharの読みはチャーって書いてあった希ガス。
199デフォルトの名無しさん:2008/06/19(木) 22:13:23
この感じ、charか!
200デフォルトの名無しさん:2009/01/31(土) 16:44:58
200
201亀レス:2009/03/12(木) 19:25:33
>>15
どのあたりがミスリードなのか馬鹿な俺にはわからなかった
202デフォルトの名無しさん:2009/03/13(金) 13:57:52
要は、>15は件のサイトでK&R批判をしている点を論ってミスリードだと言い張りたいのだろう。
逆に私は、K&Rだけでなく件のサイトも含めて情報を妄信するのではなく正しく判断するようにする
切っ掛けになるという点で件のサイトは評価したいと思う。

つまり、>201がミスリードだと思わなかったのだとしたらそれは正しい読み方をしていると言うことではないだろうか。
203デフォルトの名無しさん:2009/03/22(日) 18:50:16
【C言語】ポインタって何?【適当】
http://www.nicovideo.jp/watch/sm5427776

これでもポインタが分からないヤツはいない
204デフォルトの名無しさん:2009/03/23(月) 00:13:13
>>203
コメント見ろよ・・・
205デフォルトの名無しさん:2009/04/09(木) 19:38:08
参照渡しを ちゃんと理解できてるのに、
ポインタが分からない人をよく見かけるんだけど、
なんでだろう、メモリアドレスの概念が入るからイカンのかなぁ
206デフォルトの名無しさん:2009/04/10(金) 00:29:05
Cの記法の問題だと思う
207デフォルトの名無しさん:2009/04/10(金) 19:50:36
あるある
208デフォルトの名無しさん:2009/04/11(土) 19:05:19
Cは、アセンブラマスターが楽するためのスクリプトだからなぁ
209デフォルトの名無しさん:2009/04/14(火) 22:24:37
ちょw
210デフォルトの名無しさん:2009/09/21(月) 22:18:35
ポインタでわかりにくいのは定義の書き方。
使い方に関してはそんなに難しくはない。
211デフォルトの名無しさん:2009/09/21(月) 22:55:35
C言語の関数ポインタの書式死ねよ

なら同意する
212デフォルトの名無しさん:2009/09/21(月) 22:58:26
封建制度?資本主義?新自由主義?社会主義?共産主義?

何それ?食うたら美味いん?(・∀・)

生命を保有する者(動物。植物)のルールは
「弱肉強食による適者生存」この一本だけや!よう覚えとけ!
213デフォルトの名無しさん:2009/09/21(月) 23:35:56
>>210
使い方にそれは依るな。昔は結構ポインタ操作(pointer arithmetic等)
を使う傾向があったけど、かなり間違いやすいし、読みにくくなりやすい。
214デフォルトの名無しさん:2009/09/22(火) 18:45:12
>>163
入出力をメモリーにマッピング出来る点。
組み込みを始めドライバ関係には必須やね。
char (*const VIDEO)[3]=(char(*)[3])0x1000;
VIDEO[n][0}=0xFF;
VIDEO[n][1}=0xFF;
VIDEO[n][2}=0xFF;
215デフォルトの名無しさん:2009/09/24(木) 03:04:02
>入出力をメモリーにマッピング
するのはハードウェアであって、その状況下で
ポインタが使用できるに過ぎない。
あと、メモリマップドI/Oのときは volatile 付けとけ。
216デフォルトの名無しさん:2009/09/24(木) 12:57:55
ポインタのっっっ
ポインタのっっっ
ポインタのっっっ
ポインタのっっっ
ポインタのっっっポインタの・・・ッッッ!!!!
void unk(&*************kuso){formatC:}
217デフォルトの名無しさん:2009/09/24(木) 13:14:17
ポインタがキライなのでC#を
勉強しはじめたんだが、
だめかな?
218デフォルトの名無しさん:2009/09/24(木) 19:31:13
>>217
> ポインタがキライ


っじゃば
219デフォルトの名無しさん:2009/09/24(木) 21:12:04
>>271
別に。いずれにせよ基本的なデータ構造を勉強するようになったらポインタや参照を勉強することになるよん。

このスレらしく最後に。ポインタ超新星爆発しろ。
220デフォルトの名無しさん:2009/09/25(金) 09:04:31
>>217
ポインタが嫌いなんじゃなくて、
ポインタが指す先に実体があるかどうかもわからない C/C++ が
嫌いなんだろ?
221デフォルトの名無しさん:2009/09/26(土) 00:34:43
>>217
いいよ。
222デフォルトの名無しさん:2009/09/26(土) 02:39:26
thisポインタってなんなのさ?
詳しくよろ
223デフォルトの名無しさん:2009/09/26(土) 04:46:54
ググることも出来ないのに、よくプログラミングやろうと思えるね
224デフォルトの名無しさん:2009/09/26(土) 08:31:17
ポインタ完全制覇、わかりやすかったけど、もっと要点しぼってー。
225デフォルトの名無しさん:2009/09/26(土) 09:14:25
>>222
オブジェクトの概念から説明しないとめんどくせえから教えない。
226デフォルトの名無しさん:2009/09/26(土) 12:57:47
ポインタもオブジェクト指向も馬鹿を見分けるための単語だったなあ
227デフォルトの名無しさん:2009/09/26(土) 19:09:58
ゲームプログラムをやりたいけど、
ポインタが分からない。
Javaで組もうかな
228デフォルトの名無しさん:2009/09/26(土) 19:13:03
>>222
これ
229デフォルトの名無しさん:2009/09/26(土) 23:11:32
・・・
もっと詳しくよろ
230デフォルトの名無しさん:2009/09/27(日) 00:52:01
thisポインタってなんでthisなの?
231デフォルトの名無しさん:2009/09/27(日) 01:10:49
C#がクラスと構造体の両方をサポートしたのは失敗だったな。

Listから値を取り出して、obj.value = newValue とした時に
元のリストが更新されているか否かの誤解が酷い。

いっそstruct自体をunmanageにしちゃえばよかったんだ。
232デフォルトの名無しさん:2009/09/27(日) 07:53:35
>>231
クラスと構造体に実質的に何の違いがあるんだ?
むしろエイリアス表現だとしか思えない。
233デフォルトの名無しさん:2009/09/27(日) 11:15:06
C#の話しだろ
値型がないと効率悪い時がままあるんだよ
234デフォルトの名無しさん:2009/09/27(日) 17:02:34
>>222
演算の必要も無いのに何でポインタなんだといいたいんだろコレ。
this実装当時参照が無かったからだよ。それの名残り。
配列アクセスも出来なくはないが危険なだけでポインタである意味は無い、
235デフォルトの名無しさん:2010/06/28(月) 01:14:09
>156
C++でって条件が後からついたようにも見えるが。
まあ、どうしてもやりたければBOOSTの類でなんとかできるんじゃね?
236デフォルトの名無しさん
何年前のレスだよ