C言語のポインタってなんですか?

このエントリーをはてなブックマークに追加
868デフォルトの名無しさん:2005/08/30(火) 16:37:13
>>867
しょうがないよ
マジだもん
869デフォルトの名無しさん:2005/08/30(火) 17:16:25
せめてuintptr_t
870デフォルトの名無しさん:2005/08/30(火) 18:59:49
>>866
Linuxの何が「こう」なの?
871デフォルトの名無しさん:2005/08/30(火) 19:09:29
UNIXにはポインタをint扱いするプログラムがいまだに溢れてる
872デフォルトの名無しさん:2005/08/30(火) 19:48:14
>>870
ポインタとかアドレスを unsigned long と扱うコード
873デフォルトの名無しさん:2005/08/30(火) 20:42:24
>>871-872
なんでそんなことになってんの?
メリットは何?

874デフォルトの名無しさん:2005/08/30(火) 20:52:05
>>873
今となってはもはや昔ながらの伝統以外の意味は全くない
875デフォルトの名無しさん:2005/08/31(水) 16:54:40
>>872
全部ってこたねえだろう。
876デフォルトの名無しさん:2005/09/25(日) 02:53:10
ポインタってどういう場面で使用されるんですか?
877デフォルトの名無しさん:2005/09/25(日) 09:58:37
878デフォルトの名無しさん:2005/10/01(土) 21:46:45
ポインタを多用するプログラムってどんなのがあるのでしょうか
879デフォルトの名無しさん:2005/10/01(土) 21:48:49
Windows プログラム
880デフォルトの名無しさん:2005/10/02(日) 15:41:45
Lisp処理系
881デフォルトの名無しさん:2005/10/04(火) 12:52:03
ポインタ〜ッチ。いやぁ〜ん,まいっちんぐ。
882デフォルトの名無しさん:2005/10/07(金) 01:18:25
まだこのスレあったのね。
ポインタはね、関数で複数の戻り値を返したい時にとても便利なんだお。
普通はreturnで一個しか返せないんだお。
883デフォルトの名無しさん:2005/10/07(金) 18:28:57
>>882
構造体
884デフォルトの名無しさん:2005/10/08(土) 09:43:23
>>883
戻り値は構造体のポインタであって
構造体そのものではない罠
885デフォルトの名無しさん:2005/10/08(土) 09:51:21
構造体を返して何が悪い。
886デフォルトの名無しさん:2005/10/08(土) 12:09:06
>>885
構造体は返せない。
構造体のポインタは返せるが。

構造体と構造体のポインタは別物。
887デフォルトの名無しさん:2005/10/08(土) 12:16:30
そういうこと言ってるから、陰で時代錯誤の老害って言われるんだよ
888デフォルトの名無しさん:2005/10/08(土) 12:19:06
事実なんだけど…

嘘教えるより100倍マシだと思うけど…
889デフォルトの名無しさん:2005/10/08(土) 12:19:27
構造体返せるだろ?
890デフォルトの名無しさん:2005/10/08(土) 12:20:27
つい最近返せるようになった。
891デフォルトの名無しさん:2005/10/08(土) 12:20:48
>>889
構造体を返すプログラムのソース挙げて見れ。
892デフォルトの名無しさん:2005/10/08(土) 12:20:57
つい最近?
893デフォルトの名無しさん:2005/10/08(土) 12:23:29
typedef struct {
int a,b,c,d;
} E;

E foo(E ee){
return ee;
}

894デフォルトの名無しさん:2005/10/08(土) 12:27:18
ANSIで標準化された1989年の時点で
構造体は返せるし渡せるようになっているんだけど

> 嘘教えるより100倍マシだと思うけど…
などと言いながら、平気でウソを教える。
だから「老害」なんだよ。
895デフォルトの名無しさん:2005/10/08(土) 13:03:15
標準関数にもdivとか構造体を返す関数がある。
896デフォルトの名無しさん:2005/10/11(火) 02:43:49
構造体が大きいとスタックに積む時間が何だかアレな気はする
897デフォルトの名無しさん:2005/10/11(火) 02:58:09
まあ、構造体を返す関数の場合は、
一般的な実装では、暗黙の第一引数として呼び出し側がアドレスを渡して
そこに代入するんだけどな。
あと、レジスタで渡せるサイズだったらレジスタで返す実装もあった。

もちろん、渡す場合は全コピーだけど。
898デフォルトの名無しさん:2005/10/11(火) 03:38:37
その昔、異様に大きな配列メンバを持つ構造体を定義して、
実体を返してみたら、実行速度が物凄く遅くなってワロタ。
Cでも配列を実体で返せる方法だと、馬鹿そのものの歓び方をした。
899デフォルトの名無しさん:2005/10/11(火) 11:55:04
かって知ったる構造体なら値渡しでもいいがな。
900デフォルトの名無しさん:2005/10/11(火) 19:25:37
気分的に32byte超えると悪いことしてる気がしてしまう
いや、なんとなく
901デフォルトの名無しさん:2005/10/11(火) 19:43:46
まあ俺は32bit超えると悪いことしてる気がするが。
902デフォルトの名無しさん:2005/10/11(火) 19:50:43
>>901
そりゃ大変だな…
903デフォルトの名無しさん:2005/10/12(水) 02:57:01
つまりグローバル変数しか使わないってことかい?
904デフォルトの名無しさん:2005/10/12(水) 03:54:54
ポインタを返すんだろ
905デフォルトの名無しさん:2005/10/12(水) 04:15:24
1byteじゃなくて32bitに限定しているから、64bitアプリでは破綻。
しかし16bitアプリでは二つのポインタが!!
906デフォルトの名無しさん:2005/10/12(水) 04:19:41
二つのボイン
907デフォルトの名無しさん:2005/10/12(水) 08:28:08
64bitアプリでも今の規格ではポインタは32bitだよなぁ確か。
908デフォルトの名無しさん:2005/10/12(水) 16:28:10

寝言は寝て言え
909デフォルトの名無しさん:2005/10/17(月) 04:07:53
mixi でも糞壁って猛威を振るってんだな。
int* p; でも int *p; でも好きにすりゃええやん。
910デフォルトの名無しさん:2005/10/18(火) 19:37:20
>>894
ANSI 以前の C でも構造体は返せるようになっていた。
しかしその後流行出したPCでのCコンパイラの実装では
使えないようになっているサブセットのやつが多かった。
実際使うと恐ろしく遅くなることがあって、使えても
使う人は少なかったのではないかと思う。
911デフォルトの名無しさん:2005/10/18(火) 21:00:35
構造体を返す変数・・・fopenとか?
912デフォルトの名無しさん:2005/10/18(火) 21:01:30
変数じゃねぇな関数だ(´Д`;)
913デフォルトの名無しさん:2005/10/18(火) 21:15:56
fopenが返すのはポインタだが
914デフォルトの名無しさん:2005/10/18(火) 21:46:57
915デフォルトの名無しさん:2005/10/18(火) 22:43:05
>>911 → >>913 → >>1
以下ループ
916デフォルトの名無しさん:2005/10/19(水) 08:37:19
巨大な構造体返す関数書くと戻り値を、コピーせずに
呼び出し側のスタックに直接書き込む言語もあったりするな。
917デフォルトの名無しさん
>>916
最適化具合でそうなるコンパイラもありえるんじゃね?