トップページ⇒tech
236コメント58KB

ポインタ死ねよ。

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2007/02/11(日) 14:42:17
ポインタいらね
0002デフォルトの名無しさん2007/02/11(日) 14:44:36
>>1
まず、このスレでは、参照はポインタとみなすのか
そうでないのか、はっきりしてさせろ。話はそれからだ。
0003デフォルトの名無しさん2007/02/11(日) 14:45:22
変な使い方しないんなら、あれほどわかりやすいものはないと思うんだけどな。
0004デフォルトの名無しさん2007/02/11(日) 14:47:45
>>2
みなすわけねえだろ。

「参照いらね」なはずあるかボケ。
0005デフォルトの名無しさん2007/02/11(日) 14:51:11
>>4
よし。じゃあ、お前にとっての
参照とポインタの違いを説明しろ。
話はそれからだ。
0006デフォルトの名無しさん2007/02/11(日) 14:53:47
演算できるかどうかにきまってるじゃねーか。
それ以外あるかボケ。
0007デフォルトの名無しさん2007/02/11(日) 15:30:06
なにも足さない、なにも引かない
大人のためのポインタ、それが参照です
サントリー
0008デフォルトの名無しさん2007/02/11(日) 16:13:24
char orz[] = "orz<3";
char *p = orz;

この条件で1, 3, 5の文字をpを使って取り出す時、お前らなら

p[0], p[2], p[4]

か

*p, *(p + 2), *(p + 4)

のどっちで書く?
0009デフォルトの名無しさん2007/02/11(日) 16:13:34
ポインポインポイン
0010デフォルトの名無しさん2007/02/11(日) 16:25:46
ポインタが腐ってるんじゃなくて、文法が腐ってるという話
http://kmaebashi.com/programmer/pointer.html
0011デフォルトの名無しさん2007/02/11(日) 16:36:02
>>8
俺なら、0[p], 2[p], 4[p] かな。
0012デフォルトの名無しさん2007/02/11(日) 17:00:06
>>8
マジレスすると、p[0], p[2], p[4] 。
ただ、同じ配列の要素に2回以上アクセスする場合は、
下のように別の変数に代入してから使う。

int i;
char orz[2][6];
char *p;

strcpy(orz[0],"orz");
strcpy(orz[1],"orz<3");

for (i=0;i<2;i++) {
p = orz[i];
if (strstr(p,"orz") && !strstr(p,"<3")) {
strcat(p,"<3");
}
printf("%s\n",p);
}
0013デフォルトの名無しさん2007/02/11(日) 17:01:41
ぬるぽ
0014デフォルトの名無しさん2007/02/12(月) 11:55:11
ポインタイラネっていうより、ポインタも使える自由さがイラネってところじゃね。
0015デフォルトの名無しさん2007/02/12(月) 12:08:22
>>10
意図的かどうか知らんがミスリードしてるので読んではいけません
0016デフォルトの名無しさん2007/02/12(月) 13:25:25
スタックポインタもイラネ
0017デフォルトの名無しさん2007/02/12(月) 13:27:14
C言語がイラネ、ってことだ。C++もね
0018デフォルトの名無しさん2007/02/12(月) 17:08:24
>>16
命令ポインタもイラネ
0019デフォルトの名無しさん2007/02/12(月) 17:28:02
このスレもいらね
0020デフォルトの名無しさん2007/02/12(月) 17:36:49
>>19
それを言っちゃあおしまいだぜ
0021デフォルトの名無しさん2007/02/12(月) 17:45:13
memset(&>>1, ' ', 14);
0022デフォルトの名無しさん2007/02/12(月) 22:30:27
  ______    / //       /        / i,           i   ヽ
 [_  ____]   〔/ /      / /    ∧  /  ヽ    i,   i   |   |
   ノ ノ  ┌┐       /   / / / /    / |  /    `、 i  !  |i   i  ,  l
 / 二~フ | ,二]     ./  ,ィ / / //   /    | /       | |  |  l !  i  |  |
 `"<ヽ /  | L_/|  7_i//`/ー- 、/ /     | /      | l   |  l l  !  !  i
  _//  L__/     ,/ / ,,,,- ニ=x-、_    !/        |i  _, +十'イ  i  !  !
   ̄             /   ''" / :;;r jヽ`\,/, ,リ     i_,, x=、 レ | / /  :|
  ┌┐         /|    /:::::;;;;;;;:`::::::l   "      "/ :;;r ヽヽ   |/| /   :!
 [二  ] __     {::|   |::::::::;;;;;;;;:::::::l             l:::;;;;;` ::| l  //    :!  。
   | |/,ー-、ヽ      ̄フ"`'、:_ '''' ,ノ           l  '''' ノ,,.., /○    :|
  / /  _,,| |     / ー''"..  ̄              ` ー '、  ヽ   。   :|  ○
 レ1 |  / o └、     >|::::::::::::::::            ,    ..::::::`''''"i  :|   :|
   .|__|  ヽ_/^    \:::::::::::::: 。     _,.-ーx,,     _,,,__ :::::::::::::::○:| :|   :|
    _  _  _     トー:: ○      /     `''''''"   `i  ::::::::::::::: l .:|  l  :|
   / / / / / /    | ::|         /             |       /  :| :l  :|
   / / / / / /    iヾ :|      /            /     , 'J :::| :|  :|
   `"  `"  `"     {::|  ::|     |              /   , イ    ::::| :|  :|
  ○  ○  ○      l ::|  :|、     ヽ         /   / ::::|    :::::| :|  :|
0023デフォルトの名無しさん2007/02/14(水) 22:25:40
int* a;
*a=100;


ぼこあーん
0024デフォルトの名無しさん2007/02/15(木) 00:36:08
>>23
おいおい、それじゃ死亡フラグ立ってるぞw
0025デフォルトの名無しさん2007/02/15(木) 00:55:18
>>21
memset(&>>1, ' ', sizeof(>>1));
マジックナンバーは使うなとあれほど
0026デフォルトの名無しさん2007/02/15(木) 00:59:08
初心者は*と&の使い方(書き方や文法)で混乱してるんだよな。
概念がずれまくってる奴ってのはあまりいない。
0027デフォルトの名無しさん2007/02/15(木) 01:06:09
void main(){
 int *a;
 a = (int*)malloc(sizeof(int));
 *a = 100;
}

こうですか?わかりません><
0028デフォルトの名無しさん2007/02/15(木) 01:14:32
>>27
とりあえずcharでやってみそ。
0029デフォルトの名無しさん2007/02/15(木) 01:58:16
>>27
60点
0030デフォルトの名無しさん2007/02/15(木) 11:52:29
char *hoge(){
 char *s = "hogehoge";
 return s;
}
0031デフォルトの名無しさん2007/02/15(木) 21:51:46
ポインタの恐怖から開放されたいか?
ならばこれを唱えよ!!

#define char* 
0032デフォルトの名無しさん2007/02/15(木) 23:15:43
#undef char*
0033デフォルトの名無しさん2007/02/15(木) 23:38:40
charはキャラだよな。
チャーって言うのへんだよな。
0034デフォルトの名無しさん2007/02/15(木) 23:54:46
キャー
0035デフォルトの名無しさん2007/02/16(金) 00:04:20
ダブル精度って言い方を聞いた時はすごく新鮮に感じた
0036デフォルトの名無しさん2007/02/16(金) 00:06:13
そうだよな。
トリプルが普通だもんな
0037デフォルトの名無しさん2007/02/16(金) 03:40:10
ポインタはオブジェクトを指し示すもの。
決してメモリのアドレスではありません。
0038デフォルトの名無しさん2007/02/16(金) 05:56:12
>>33
シャーだよ。赤い彗星の。
0039デフォルトの名無しさん2007/02/16(金) 08:57:10
>>37
Windows95は、他アプリのメモリ領域も指定できる、
本当にメモリーのアドレスとなる恐怖のOS。(ME・98も?)
NT系はアプリごとにOSがメモリー管理してくれる。
0040デフォルトの名無しさん2007/02/16(金) 20:40:29
メモリー配置をCPUがしてくれてて、
論理アドレスと物理アドレスが別物になってるから
他のアプリとは決して被らないはずなのに・・・
0041デフォルトの名無しさん2007/02/16(金) 21:44:01
>38
残念だがそれはcharでなくCharだ。
0042デフォルトの名無しさん2007/02/17(土) 00:12:03
これから関数を呼び出すときはこう書くように。


(****************************printf)("hello pointer !!!!!!");
0043デフォルトの名無しさん2007/02/17(土) 05:34:31
C言語は卑猥すぎる。
何がって、*がだよ。*ですよ*。もう形からしていやらしい。
しかも名前は逆参照演算子。普通とは逆に突っ込む。
意味はポインタ。挿すものだなんて…製作者は何を考えてるんだか。
*を付けた変数をファック。
とても18未満には教えていいような言語じゃないね!
0044デフォルトの名無しさん2007/02/17(土) 11:57:31
「スーパーマリオブラザーズは女性差別・セクハラ」
なんで、あんな酷いセクハラ作品が子供たちに大っぴらに売られているのでしょう?
まず、男二人が主人公で、捕まるのは女性。これは明らかに女性差別です。
主人公が好色なイタリア人の男。これも子供の教育にはよくありません。
特に二人のあの鼻!!卑猥すぎます。子供が性犯罪オス原因の一つです。
そして敵がクリボーにノコノコ。これらはキノコに亀です。
明らかに男性器を象徴しています。
それにクリボーってなんですか!!クリ○リスと棒を合体させた非常に卑猥なネーミングですよ。
パワーアップアイテムもそうです。キノコに花。これも男性器と女性器です。
しかも、大きくなるんですよ。勃起です勃起。子供には早すぎます。
あのスターってなんですか?よく男性の読むいかがわしい漫画で女性の乳首や性器を
隠すのに用いられるのが星マークですが、それが逃げる、マリオが追いかける、
こういった姿は見せたくないものを無理やり剥ぎ取ろうとするレイプを
連想させます。あぁ、もう言い尽くせません。
大きくなったり、土管に入る、ブラックパックンッフラワーなんて
もう言うまでもない下品なキャラクターばかりのこの作品。
女性の地位向上を阻んでいますよ。皆さんもそう思いますよね?
0045デフォルトの名無しさん2007/02/17(土) 19:51:42
ポインヨ
0046デフォルトの名無しさん2007/02/17(土) 20:59:35
C#最高
0047デフォルトの名無しさん2007/02/17(土) 21:01:05
レーザーポインタ
0048デフォルトの名無しさん2007/02/22(木) 03:58:21
>>8
orzの途中に\0が入ったときにおかしくなるので文字列処理のライブラリを使う。
マルチバイト文字コードだとそもそも文字の単位があいまいすぎる。
0049デフォルトの名無しさん2007/04/22(日) 21:40:59
誰か俺にダブルポインタを説明してくれ!!
0050デフォルトの名無しさん2007/04/22(日) 22:06:10
ポインターのポインター
0051デフォルトの名無しさん2007/04/23(月) 01:58:29
死ね
0052デフォルトの名無しさん2007/04/23(月) 11:31:50
>>49
何か特殊なものだと言う考えは捨てて、>50の通りに理解する方がいいよ。
#でないと、「ダブルポインタは判りますがトリプルポインタは自信がありません」なんてことになりかねない。
0053デフォルトの名無しさん2007/04/23(月) 13:31:49
クアドラプルポインタとか
クインティプルポインタとか
セクスタプルポインタとか
セプタプルポインタとか
オクタプルポインタとか
ノナプルポインタとか
ディカプルポインタとか

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

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

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

つかこれ、どうみても buf を
  char *buf;
で定義し、kakuho(&buf) で受け取るつもりのコード。
0070デフォルトの名無しさん2007/04/24(火) 00:49:22
Cは基本的に値しかわたせないんだから
値として何が渡されているかを意識すれば
それほど難しくはない。
0071デフォルトの名無しさん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;
}
0072デフォルトの名無しさん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);
0073デフォルトの名無しさん2007/04/24(火) 14:30:06
hoo( void** value )
{
*value = 0xABCDEF;
}

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

こういう事ね。
0074デフォルトの名無しさん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;
}
0075デフォルトの名無しさん2007/04/25(水) 22:58:40
>>68
ええと。
kakuho() と main() の buf は同名の別変数。
kakuho() から return buf; するか、buf をグローバル変数で確保するか。
前者を推奨。

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

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

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

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

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

かくいう俺はチャー派
0097デフォルトの名無しさん2007/06/14(木) 23:14:56
日本人同士で話すのに、英語のふぉにっくすなんて気にしてもねぇ。
0098デフォルトの名無しさん2007/06/15(金) 00:38:01
DestroyThread(this);
0099デフォルトの名無しさん2007/06/15(金) 12:54:17
>>97
そういうやつに限って、Ironを"アイアン"と呼ぶか"アイロン"と呼ぶかにこだわる(両方正解であり、両方不正解)
0100デフォルトの名無しさん2007/06/15(金) 15:59:26
energyをエネルギーと読んでしまう奴は英語のフォニックスを全く理解していないと思うのだが・・
0101デフォルトの名無しさん2007/06/15(金) 17:11:50
だってドイツ語の音訳だし
0102デフォルトの名無しさん2007/06/15(金) 18:46:36
英語をドイツ語で読むならなおさら
0103デフォルトの名無しさん2007/06/15(金) 19:54:27
charは「文字」と読むべき。
0104デフォルトの名無しさん2007/06/15(金) 20:26:19
じゃあ全部日本語で呼べばいいな
0105デフォルトの名無しさん2007/06/15(金) 23:35:48
途中で切られている事自体が間違い
0106デフォルトの名無しさん2007/06/16(土) 05:35:17
http://dictionary.goo.ne.jp/search.php?MT=char&kind=ej&mode=0&base=1&row=0
0107デフォルトの名無しさん2007/06/16(土) 08:16:36
>>100 はアポージュースください。って言うんだろうな。
0108デフォルトの名無しさん2007/06/16(土) 10:08:44
アポー
0109デフォルトの名無しさん2007/06/17(日) 13:40:48
int イント
integer インテジャー

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

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

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

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

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

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

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

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

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

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

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

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

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

ポインタの本来の意味は、アドレスレジスタだね。
0148デフォルトの名無しさん2007/11/17(土) 12:18:35
>>148
経緯的には後付けなのかも知れんが、C が広まった
理由としてはポータビリティーは大きいと思うなぁ。
0149デフォルトの名無しさん2007/11/30(金) 11:47:05
メモリを直接弄る場合にゃ、ポインタは分かりやすい。組み込みだと、ポインタがないと死ねる。
でも、普通のアプリ作る場合には、ポインタは邪魔だよね。
0150デフォルトの名無しさん2007/12/01(土) 06:14:53
専門書読むのに索引あると便利だが、
マンガ読むときには必要ないって感じだな。
0151デフォルトの名無しさん2007/12/01(土) 07:48:21
どちらかと言うと、専門書と言うよりはマニュアル本(或いはもっと極端に規格書)だと思うぞ。
0152デフォルトの名無しさん2007/12/02(日) 11:54:46
うんにゃ、電話帳よ。
0153デフォルトの名無しさん2007/12/02(日) 22:32:06
ドット絵とドローツールとか
0154デフォルトの名無しさん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);
}

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

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

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

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

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

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

うをりやー
void signal(int signum, void handler[1](int))[1](int);
ほら、簡単でしょう?
0181デフォルトの名無しさん2008/06/10(火) 13:09:32
void signal(int signum, void handler[*](int))[*](int);
なんか、こういう記法を作ればいい気がしてきた。C[*]記法?
0182デフォルトの名無しさん2008/06/10(火) 20:54:21
>>181
これじゃだめだったっけ?
void signal(int signum, void handler[](int))[](int);
0183デフォルトの名無しさん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
0184デフォルトの名無しさん2008/06/10(火) 22:00:49
ポインタ返しとかを考えると、もうなんか
char stepscan[](...)
char stepscan(...)[*]
stepscan(...)[*] : char
こうしなきゃダメなんだろうかとか思ってしまう
0185デフォルトの名無しさん2008/06/11(水) 00:27:15
今時4GBくらいメモリ積んでることも余裕なので、一般的な32ビットCPUの全空間丸ごとアクセス可能な状態。
ということは別にNULLだろうがオンメモリなんだぜ。
というか、まあアドレス0000にRAMがあるようなシステムだと、NULL==(void*)0と定義してしまって、NULLを特別扱いすると、
RAMの使用範囲が狭まってしまうな。
0186デフォルトの名無しさん2008/06/11(水) 00:32:44
そこは仮想メモリでアドレス空間を好きに動かせばいい。
0187デフォルトの名無しさん2008/06/11(水) 00:35:27
>>185
それ65系とか68系だね?
0188デフォルトの名無しさん2008/06/13(金) 05:39:11
ストラックポインタ最高!
0189デフォルトの名無しさん2008/06/13(金) 07:54:35
ポインタは死にません。終了。
0190デフォルトの名無しさん2008/06/13(金) 08:15:43
ポインタは死んだ
0191デフォルトの名無しさん2008/06/13(金) 08:40:49
ヽ( `ω´)ノ死にません!
0192デフォルトの名無しさん2008/06/13(金) 09:09:01
ポインタは死んだ。ヌルポ(笑)
0193デフォルトの名無しさん2008/06/14(土) 02:11:28
>>192
ガッ!
0194デフォルトの名無しさん2008/06/15(日) 07:52:10
それよりargがアホ
0195デフォルトの名無しさん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
0196デフォルトの名無しさん2008/06/16(月) 06:18:52
ポインタテラ便利
Objective-Cやったらわかる。
0197デフォルトの名無しさん2008/06/16(月) 07:56:57
ポインタは乳首
生きる
0198デフォルトの名無しさん2008/06/19(木) 15:13:45
「ハッカーズ大辞典」にcharの読みはチャーって書いてあった希ガス。
0199デフォルトの名無しさん2008/06/19(木) 22:13:23
この感じ、charか!
0200デフォルトの名無しさん2009/01/31(土) 16:44:58
200
0201亀レス2009/03/12(木) 19:25:33
>>15
どのあたりがミスリードなのか馬鹿な俺にはわからなかった
0202デフォルトの名無しさん2009/03/13(金) 13:57:52
要は、>15は件のサイトでK&R批判をしている点を論ってミスリードだと言い張りたいのだろう。
逆に私は、K&Rだけでなく件のサイトも含めて情報を妄信するのではなく正しく判断するようにする
切っ掛けになるという点で件のサイトは評価したいと思う。

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

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

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

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

生命を保有する者(動物。植物)のルールは
「弱肉強食による適者生存」この一本だけや!よう覚えとけ!
0213デフォルトの名無しさん2009/09/21(月) 23:35:56
>>210
使い方にそれは依るな。昔は結構ポインタ操作(pointer arithmetic等)
を使う傾向があったけど、かなり間違いやすいし、読みにくくなりやすい。
0214デフォルトの名無しさん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;
0215デフォルトの名無しさん2009/09/24(木) 03:04:02
>入出力をメモリーにマッピング
するのはハードウェアであって、その状況下で
ポインタが使用できるに過ぎない。
あと、メモリマップドI/Oのときは volatile 付けとけ。
0216デフォルトの名無しさん2009/09/24(木) 12:57:55
ポインタのっっっ
ポインタのっっっ
ポインタのっっっ
ポインタのっっっ
ポインタのっっっポインタの・・・ッッッ!!!!
void unk(&*************kuso){formatC:}
0217デフォルトの名無しさん2009/09/24(木) 13:14:17
ポインタがキライなのでC#を
勉強しはじめたんだが、
だめかな?
0218デフォルトの名無しさん2009/09/24(木) 19:31:13
>>217
> ポインタがキライ


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

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

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

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