C言語なら俺に聞け(入門編)Part 115

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
C言語の入門者向け解説スレッドです。

★前スレ
C言語なら俺に聞け(入門編)Part 114
http://toro.2ch.net/test/read.cgi/tech/1366573639/
★過去スレ
http://makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000
★教えて欲しいのではなく宿題を丸投げしたいだけなら
  ↓宿題スレ↓へ行ってください。
C/C++の宿題片付けます 164代目
http://toro.2ch.net/test/read.cgi/tech/1364700745/
★C++言語については避けてください。C++対応明記スレへどうぞ。
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
  # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること。
  # サイズが大きい場合はアップローダ等を利用してください。
http://codepad.org/
http://ideone.com/
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
2デフォルトの名無しさん:2013/05/13(月) 21:01:34.43
>>1
乙!
3デフォルトの名無しさん:2013/05/13(月) 21:10:11.45
QZ再び発狂の予感
4デフォルトの名無しさん:2013/05/13(月) 21:43:24.01
>後半、イメージエポック御影社長(左から2番目)を交えトークに拍車がかかります。
>会場からのゲーム専門学校生の質問「海外のFPSに日本のFPSが勝つにはどうすればいいと思いますか?」
>御影社長「うーん、海外のFPSはマサチューセッツ大学を首席で卒業したプログラマーとかが作っているので、それを超えるには根本的に開発スタイルを変えないとダメで・・・」

バカクズゲーム専門学校www
社会のゴミ

発達障害、低IQそれが無能ゲーム専門学校

ゲーム専門学校生「海外のFPSに日本のFPSが勝つにはどうすればいいと思いますか?」
御影社長「うーん、海外のFPSはマサチューセッツ大学を首席で卒業したプログラマーとかが作っているので、それを超えるには根本的に開発スタイルを変えないとダメで・・・」

wwwww
5デフォルトの名無しさん:2013/05/13(月) 22:08:32.96
数独を解くのを考える前に、問題を作るプログラムの方が色々考えるよね
6 ◆QZaw55cn4c :2013/05/13(月) 22:26:08.62
>>3
いつも狂っているのでいまさら「発」狂というほどのものでもありませんが
7デフォルトの名無しさん:2013/05/13(月) 22:29:26.34
候補を削っていくっていうけど、完全に候補を削れるのって最初の
数個〜十数個くらいじゃないの?
例えば9マスに1〜8がすでにあるから残りは9って分かるけど

複数のマスにそれぞれ複数の候補があるけど、他のマスの候補をこの
数字だと仮定した上で、こっちのマスのこの数字は削れるという感じじゃないの?
8デフォルトの名無しさん:2013/05/13(月) 22:34:52.80
数独を解くアルゴリズム自慢もいいけど
まさかリトライ制限もなしに総当たりとかいうバカは
まさかここにはいないよな?
9デフォルトの名無しさん:2013/05/13(月) 22:35:32.99
プログラミングの専門書読んでたらめちゃくちゃ頭良くなった気分になるけど
アルゴリズム勉強したくてコンピュータ数学の専門書読んだら全然分らなくて
本当に自分が情けなくなる
10デフォルトの名無しさん:2013/05/13(月) 22:38:34.85
総当たりって無理すぎだろ
平均6マスいるとして

(6!)^9か1000京くらいの計算量だが....
11デフォルトの名無しさん:2013/05/13(月) 22:38:44.99
数独でリトライ?
12デフォルトの名無しさん:2013/05/13(月) 22:50:18.70
シュミレーションwwwwwwwwww
シミュレーションかよ
教えてくれてありがとう
13デフォルトの名無しさん:2013/05/13(月) 22:51:24.07
全角アルファベットは例外なく馬鹿って本当だったんだな。
14デフォルトの名無しさん:2013/05/13(月) 22:51:50.98
ゲーム専門学校生ですが
int a=10;
char *b;
b=(char*)a;

これは何故キャストしてるのでしょうか?教えてください
15デフォルトの名無しさん:2013/05/13(月) 22:53:52.36
型が違うからです
16デフォルトの名無しさん:2013/05/13(月) 22:55:19.31
セグメンテーションフォルトさせたいからじゃない?
17デフォルトの名無しさん:2013/05/13(月) 22:57:26.14
キャストしないでコンパイルかけてみればわかるよ。
18デフォルトの名無しさん:2013/05/13(月) 23:03:41.97
構造体あればポインタいらないじゃん
ポインタでリスト作ってる奴何なの?
19デフォルトの名無しさん:2013/05/13(月) 23:06:44.52
このコードのやりたい事はさっぱり分からんな
アドレス10番地ってDOS時代じゃないと扱えんぞ
20デフォルトの名無しさん:2013/05/13(月) 23:08:40.74
>>11
難しいと言われる数独には
理詰めで解けない所はどうしてもあるから
リトライというか仮定法は必要

でも普通の問題は理詰めだけで大体解けるし
難しいと言われるものでも上限とか儲けるほど分岐が多くなることは無い
上限とか噴飯もの
21デフォルトの名無しさん:2013/05/13(月) 23:11:49.68
本当にゴミクズだな無能ゲーム専門は
2214:2013/05/13(月) 23:12:45.13
>>15
理解しました

ゲーム作ってるんですが
メニュー表示ってどうやるかわかりますか?
23デフォルトの名無しさん:2013/05/13(月) 23:17:02.54
RPGツクールというフレームワークをつかうと
簡単にメニュー表示できます
2414(ゲーム専門学校):2013/05/13(月) 23:21:25.41
RPGツクール無しで作るやり方教えてください
25デフォルトの名無しさん:2013/05/13(月) 23:22:07.34
メニューなんかのUI作りたいんだったらCなんかで作らずに
Visual StudioでC#使ったほうが早い。
26デフォルトの名無しさん:2013/05/13(月) 23:31:20.95
Visual Studio使ってるんですが、vfscanfがないらしく、

warning C4013: 関数 'vfscanf' は定義されていません。

とエラーがでます。vscanfを自分で実装しないといけないと思うのですが、どうやって実装するのか分かりません。
実装例が掲載されているサイト等ありましたら、教えて下さい。
あるいは、誰か実装して下さい・・・
27デフォルトの名無しさん:2013/05/13(月) 23:37:42.24
何を言ってるのかさっぱりわからんが
もしかして数独を作ろうとしてるのか
28デフォルトの名無しさん:2013/05/13(月) 23:37:56.23
2914(ゲーム専門学校):2013/05/13(月) 23:42:58.03
>>25
コンソールでのやり方教えてください
30デフォルトの名無しさん:2013/05/14(火) 00:21:54.42
Cじゃないからスレチ
話題続けるようなら荒らし
31デフォルトの名無しさん:2013/05/14(火) 00:32:27.72
式と文の違いは?
32片山博文MZパンク ◆0lBZNi.Q7evd :2013/05/14(火) 00:37:28.05
>>29
int n;
printf("###俺様のメニュー###\n");
printf("1.駅家町へ行く\n");
printf("2.豊松村へ行く\n");
printf("3.ダンスパーティーへ行く\n");
printf("番号を入力してね> ");
scanf("%d", &n);
33デフォルトの名無しさん:2013/05/14(火) 01:17:37.30
>>31
値を持つのが式でアクションを記述するのが文
ただし式単体で文になることができる
3414(ゲーム専門学校):2013/05/14(火) 10:34:00.81
.>>32
マップを動かしてる最中に開くにはどうすればいいのでしょうか?
35デフォルトの名無しさん:2013/05/14(火) 11:21:03.69
>>34
そのマップっていうのはどういう方法で表示してるの?
36デフォルトの名無しさん:2013/05/14(火) 12:06:24.46
rogueみたいな感じですかね
curses使えばドラクエみたいなマルチウィンドウなメニューも比較的簡単に作れる
3714(ゲーム専門学校):2013/05/14(火) 12:11:50.36
>>35
配列にいれたやつです
別のマップとかやりたいんですがどうすればいいんでしょうか?
38デフォルトの名無しさん:2013/05/14(火) 12:30:41.41
エスケープシーケンス
ttp://www.grapecity.com/japan/powernews/column/clang/047/page02.htm
を使えば、好きな場所(画面上の座標)を指定して文字を書くことが出来るので
それでメニューのボックスを表示。
ちなみにエスケープシーケンスを使うと文字や文字背景の色を変えたりも出来て面白い。

Windowsだったらコンソール制御APIを使ったほうが良いかもしれないけど。
俺は詳しくないのでわからんけど、ここ参考になるかな。
ttp://www.asahi-net.or.jp/~qb3k-kwsk/rpg/program/tutorial/game1/m100.html
39デフォルトの名無しさん:2013/05/14(火) 17:49:53.45
ゲームの話題OKの糞スレage
40デフォルトの名無しさん:2013/05/14(火) 18:21:41.58
else ifが連続であるときは最初から順に評価されますか?

if (条件){

}else if (条件2){

}else if (条件3){

}

とあった場合、条件→条件2→条件3の順に評価されますか?
もしそうなら仕様的に一番真となる確率の高い順に並べておいたほうが評価回数が減って高速になりますよね?
41デフォルトの名無しさん:2013/05/14(火) 18:49:01.51
>>40
基本的にはそう
ただよっぽど確率偏ってるか、特定の場合の処理が重いとかじゃないとそこまで差は出ないんじゃないかな
42デフォルトの名無しさん:2013/05/14(火) 18:50:58.45
2次元配列の1個のマップしかありません
別マップ読み込むときはどうすればいいんでしょう?
43デフォルトの名無しさん:2013/05/14(火) 19:02:42.96
スレチ死ね
44デフォルトの名無しさん:2013/05/14(火) 19:59:52.45
とりあえず

int main(void)
{
int sudoku[9][9][9][9][9][9][9][9][9];

}

1行で
挫折したww
誰が作ってくれよww
45デフォルトの名無しさん:2013/05/14(火) 20:31:35.75
クマー
46デフォルトの名無しさん:2013/05/14(火) 20:36:12.63
>>44
9次元数独か…?
俺は3次元までしか認識できないな
47デフォルトの名無しさん:2013/05/14(火) 20:37:52.30
スタックオーバーフローで実行できない。
4814(ゲーム専門学校):2013/05/14(火) 21:24:32.78
現在いるマップから違うマップを読み込むにはどうしたらいいのでしょうか?
階段マークの@にぶつかったら判定で次のマップにいきたのですが
マップは2次元配列1個しかありません
49デフォルトの名無しさん:2013/05/14(火) 21:28:30.41
方法は色々あるので、質問が漠然としすぎてて説明しづらい。
単純に言えば、二次元配列を二個作ればいいんじゃね。
50デフォルトの名無しさん:2013/05/14(火) 21:32:42.27
>>48
マップの2次元配列に直接アクセスしているんだろう。
・マップが切り替わるときは、マップ配列を新しいマップデータで書き換える
・アクセスは、マップ本体を指すポインタでやって、マップが切り替わるときに
 ポインタの指す先を新しいマップに切り替える
他にも方法があるかもしれないが自分で理解しやすい方法を選ぶのが良い。
5114(ゲーム専門学校):2013/05/14(火) 21:43:46.14
よくわかりません
ソースコードやってください
52デフォルトの名無しさん:2013/05/14(火) 21:57:41.24
>>51
この板はなりすましがいるから続ける気ならトリップつけてね。
53デフォルトの名無しさん:2013/05/14(火) 22:04:36.62
ゲー専はちったぁ自分で考えろ
54デフォルトの名無しさん:2013/05/14(火) 22:06:43.78
今できてる分のソースをどっかに上げるとかしないと、質問には答えようがない。
55デフォルトの名無しさん:2013/05/14(火) 22:17:10.26
回答の練習のため
あえて釣られてみるとか
5614(ゲーム専門学校):2013/05/14(火) 22:19:23.99
http://book.geocities.jp/muu5muu/pic1/pic9.png

ソースはありません
こんな感じです
範囲外の場所にいったら次のマップを読み込みたいです
57デフォルトの名無しさん:2013/05/14(火) 22:44:56.03
int hairetsu(int h[][])
{
int x;

return x;
}

エラーなし

int hairetsu(int h[][])
{
int x;
h[0][0]=1;

return x;
}


エラーです。
何故ですか?
どうすれば?
58デフォルトの名無しさん:2013/05/14(火) 22:51:03.82
エラーメッセージ書いてよ
59デフォルトの名無しさん:2013/05/14(火) 22:54:13.31
error: invalid use of array with unspecified bounds
です。

大域にh[][]を宣言して

int hairetsu(void)
{
int x;
h[0][0]=1;

return x;
}

だとエラーなしです。
60デフォルトの名無しさん:2013/05/14(火) 23:03:26.21
>>59
C言語で配列を引数に使う場合は一番左側以外の次元数は既に決定されて
いなければならない
つまりこの場合だと int h[][5] のような感じで定数が入っていなければコンパイルできない
61デフォルトの名無しさん:2013/05/14(火) 23:04:54.96
新しくファイルから読めば?
62デフォルトの名無しさん:2013/05/14(火) 23:14:29.18
>>60
自由に対応する添え字の要素に値を代入したい場合どうしたらいいでしょうか?
63デフォルトの名無しさん:2013/05/14(火) 23:18:15.05
他言語の使用を検討する
64デフォルトの名無しさん:2013/05/14(火) 23:38:57.61
>>62
ポインタのポインタを使用して「二次元配列もどき」を使用する
65デフォルトの名無しさん:2013/05/15(水) 00:21:00.57
6640:2013/05/15(水) 02:02:18.19
>>41
サンクス
かなり偏りあるから確率高い順に並べ替えとく

インタプリタ言語もどき作ってるんだけど
ユーザーが頻繁には使わなさそうな命令は後ろのほうにしとくわ
67デフォルトの名無しさん:2013/05/15(水) 02:29:32.22
ループの中で100まん回呼ばれるとかじゃなきゃ不要
68デフォルトの名無しさん:2013/05/15(水) 02:31:38.47
>>66
そういう話であれば、命令ごとに値を割り振っておいて
switch文で分岐するのが基本的な実装パターン
69デフォルトの名無しさん:2013/05/15(水) 04:32:20.93
>>44
int sudoku[81];
でいいだろうがハゲ

横の合計は、x(0〜8)行目なら
total=0;
for(i=0;i<9;i++)total+=sudoku[x*9+i];

縦の合計は、y(0〜8)列目なら
total=0;
for(i=0;i<9;i++)total+=sudoku[i*9+y];

エリアは左上から、
012
345
678
とすると、
zエリアの合計は、z(0〜8)エリア目なら
眠い
70デフォルトの名無しさん:2013/05/15(水) 04:45:18.98
ああ、各エリアの左上のマスはsudoku[(z%3*3)+(z/3*27)]か
7114(ゲーム専門学校:2013/05/15(水) 12:59:50.42
http://book.geocities.jp/muu5muu/pic1/pic9.png

ソースはありません
こんな感じです
範囲外の場所にいったら次のマップを読み込みたいです
わかる日といますか?
72デフォルトの名無しさん:2013/05/15(水) 13:57:32.08
ゲームの話題はスレ違い
キチガイ死ねやゲー専
73デフォルトの名無しさん:2013/05/15(水) 14:26:26.90
別にいいじゃん
74デフォルトの名無しさん:2013/05/15(水) 14:37:43.42
昼間から書き込んでるしゲー専じゃなくてニートだろ
75デフォルトの名無しさん:2013/05/15(水) 14:51:39.57
本当にゲー専通いなら、金払って教えてもらってるんだからそこで聞きゃいいじゃん
聞くだけの対価払ってるんだしー
7614(ゲーム専門学校:2013/05/15(水) 15:01:25.28
>>75
僕が通ってるゲーム専門学校はへぼいです
DXライブラリとかそんなヘボいことしかしません
周りのレベルも低いし自分はUnityを使ってますし

3D>>>>2D
先生もUnityのこと詳しくないし役に立ちません
77デフォルトの名無しさん:2013/05/15(水) 15:07:55.81
板違い

【3Dゲームエンジン】Unity質問スレッド4
http://toro.2ch.net/test/read.cgi/gamedev/1362821620/
78デフォルトの名無しさん:2013/05/15(水) 15:08:27.74
unityってCで作れるの?
7914(ゲーム専門学校:2013/05/15(水) 15:11:18.34
>>78
まだ本買ったばっかりなのでわかりません・・・
80デフォルトの名無しさん:2013/05/15(水) 17:47:02.21
本を買う前にそこに何が書いてあるか確かめるべきだし
学校に入る前にそこで何を身につけるか具体的に決めておくべき
81デフォルトの名無しさん:2013/05/15(水) 18:13:35.05
はい
82デフォルトの名無しさん:2013/05/15(水) 19:44:39.17
>>71
なんか面白そうなゲームだな。

マップデータが3個
map1[10][10]; map2[10][10]; map3[10][10];
あるとして、現在のマップがmap1の時は
current_map[10][10]; にmap1のデータをコピーして、current_mapにアクセス。
次のマップがmap2の時は
current_map[10][10]; にmap2のデータをコピーして、current_mapにアクセスする。
という作りで良いんじゃないの。

もっと言うと、
マップデータ3個は
map[3][10][10];
としておき、例えばmap[2]をcurrent_mapにコピーするときは
for(i = 0; i < 10; i++)
 for(j = 0; j < 10; j++)
  current_map[i][j] = map[2][i][j];
とする
8314(ゲーム専門学校):2013/05/15(水) 19:48:25.45
>>82
よくわからず困ってました
やってみたいと思います
map1(*p)[10]とかでもいいんですかねやってみます
84デフォルトの名無しさん:2013/05/15(水) 19:56:40.51
current_map(*p)[10];
85デフォルトの名無しさん:2013/05/15(水) 20:32:41.10
void a(void){b();}
void b(void){c();}
void c(void){a();}

こういうとき関数内で呼び出す関数が
後ろで宣言されて順番変えてもまた別の関数が同じ事になりますよね?
対処の仕方教えて下さい。
86デフォルトの名無しさん:2013/05/15(水) 20:46:59.05
頭にプロトタイプ宣言だけを置いて型だけは解決させちゃう

void b(void);
void c(void);

void a(void) { b(); }
void b(void) { c(); }
void c(void) { a(); }
87デフォルトの名無しさん:2013/05/15(水) 20:51:56.59
ありがとうございます!
88デフォルトの名無しさん:2013/05/15(水) 21:34:51.42
思考停止
89デフォルトの名無しさん:2013/05/16(木) 10:00:08.96
C言語を使ったUNIXシステムコールプログラミングの質問させてください
catコマンドライクなプログラムを書いているんですけど

「引数に指定されたファイルの各行に行番号を付けて標準出力に出力する
プログラムを作りなさい.行番号は 4 桁とします.
ファイルを読むのは,システムコールである open, read, close
を直接用いなさい.」
(行の終りには改行コードが入っています)

この問題文の解答となるようなコードを書きたいんだけど、どうしてもfdopenとかgetchar、fgetsを使ったものしか思いつきません

行番号をプリントしないでファイルの内容を表示するコードは書けてます
http://codepad.org/rik8bxkY

どなたかご教授願います
90デフォルトの名無しさん:2013/05/16(木) 10:35:20.64
>>89
http://codepad.org/C3qHH5gy

一行が256文字以上のテキストを読まされるとバグる。
動作確認してないからほかでもバグってるかもしれない。
91デフォルトの名無しさん:2013/05/16(木) 10:37:59.16
http://codepad.org/C3qHH5gy

16行目は
×str[i] = ch;
○str[i++] = ch;
だった。
92デフォルトの名無しさん:2013/05/16(木) 11:07:58.21
>>90,>>91
ちゃんと動きました、すごく納得しました!
よく読んで勉強したいと思います
ありがとうございました!
93デフォルトの名無しさん:2013/05/16(木) 11:34:52.29
思考停止
94デフォルトの名無しさん:2013/05/16(木) 12:34:59.76
>>44
http://ideone.com/ONhPyA
数独、Cじゃないけど
95デフォルトの名無しさん:2013/05/16(木) 12:40:10.52
特に特別なことをしなくても
ポインタを使ったほうが処理が速いの?
96デフォルトの名無しさん:2013/05/16(木) 12:41:39.31
>>94
C以外ならスレ違いだ
97デフォルトの名無しさん:2013/05/16(木) 13:04:08.09
>>94
出ていけ
98デフォルトの名無しさん:2013/05/16(木) 14:22:45.01
>>95
俺の認識だがポインタを使うのは

・渡す変数のサイズがポインタのアドレスのサイズより大きい場合(構造体など)
・配列の場合
・渡した変数をただ使うだけでなく内容を書き換えたい場合
99デフォルトの名無しさん:2013/05/16(木) 16:40:28.91
>>95
おまじない的に使っても意味は無い
100デフォルトの名無しさん:2013/05/16(木) 17:23:10.05
int *pary=(int*)malloc(sizeof(int)*size);
このように宣言されたポインタからsizeを取得する方法ってありますか?
size =sizeof(pary)/sizeof(int);
だとダメなので
101デフォルトの名無しさん:2013/05/16(木) 17:25:55.34
>>100
ポインタはある場所を指し示しているだけであって、そのsize情報は持たない
sizeはどこかに自分で覚えておくしかない
102デフォルトの名無しさん:2013/05/16(木) 17:38:21.16
>>100
特定環境では _msize が使える
が、移植性は無くなる
103デフォルトの名無しさん:2013/05/16(木) 17:51:05.45
ポインタが必要だと思ったことがない
配列mallocすればいいだけの話だろ...
ハッシュ使えないし何の役にも立たないわ
104デフォルトの名無しさん:2013/05/16(木) 17:51:22.19
>>100
mallocの実装見れば
どこかに持ってるかもしれないし
どこにも持ってないかもしれない
105デフォルトの名無しさん:2013/05/16(木) 17:53:25.88
mallocしたメモリからは取れない

って一刀両断するのが優しさというもの
106デフォルトの名無しさん:2013/05/16(木) 18:01:09.41
実際ポインタは実用的じゃないでしょ
コードも分りにくいしアクセスも遅い
ポインタのリストってなんだよ
あほみたいに遅いじゃん
107デフォルトの名無しさん:2013/05/16(木) 18:01:45.98
馬鹿セグメントとか理解してないから
ヒープ領域とかすらわからない無能
108 ◆QZaw55cn4c :2013/05/16(木) 18:11:15.42
>>106
>アクセスも遅い
これはどうかな
109デフォルトの名無しさん:2013/05/16(木) 18:13:25.91
>>101
>>102
>>104
なるほど、やはり宣言するときに別に記憶して置く必要があるようですね
ありがとうございます
110デフォルトの名無しさん:2013/05/16(木) 18:17:54.47
ポインタで大容量のデータ保持は無理だね
111デフォルトの名無しさん:2013/05/16(木) 18:20:05.80
>>110
なにと比較してだろう。
112デフォルトの名無しさん:2013/05/16(木) 18:22:05.10
配列や構造体
o(1)でアクセスできないとか使えないだろ
113デフォルトの名無しさん:2013/05/16(木) 18:25:17.73
>>112
それはデータ構造によるな。
ポインタをデータ構造の一種だと思っているのかね。
114デフォルトの名無しさん:2013/05/16(木) 18:33:26.95
ポインタでできることは配列でできるだろ?
ゲームとかポインタ使ったコード見たことないわ
115デフォルトの名無しさん:2013/05/16(木) 18:37:10.15
配列は最初に決めたサイズより増やしたり減らしたりできないだろう?
もしサイズの見積もりができない問題だったらどうする?
116デフォルトの名無しさん:2013/05/16(木) 18:37:54.39
ポインタはコピーできるけど
配列コピーしようと思ったら関数呼ばないと駄目じゃない
117デフォルトの名無しさん:2013/05/16(木) 18:39:00.46
>>115
10億個mallocすればいい
それにどうしても配列使いたくないならjavaやればいいじゃん
iteratorもあるし
何故ポインタそんなに使いたいのか
コードも馬鹿長くなるし
118デフォルトの名無しさん:2013/05/16(木) 18:42:45.14
ポインタが嫌なら使わなければいい
はい。次の患者の方
119デフォルトの名無しさん:2013/05/16(木) 18:43:25.80
使わなければいいじゃなくて使う必要無いんだろ
何かと言い訳してポインタ使いたいだけだろ趣味を押し付けるな
120デフォルトの名無しさん:2013/05/16(木) 18:48:19.18
リンクリスト.vs.配列みたいな対比だったらわかるけど、
ポインタ.vs.配列とかざっくりすぎるは。
ポインタってデータ構造の名前じゃないし。
121デフォルトの名無しさん:2013/05/16(木) 18:49:12.95
ポインタを駆使しても文字列操作できないとかC欠陥多すぎワロタ
122デフォルトの名無しさん:2013/05/16(木) 18:52:39.47
ではC言語使っていただかなくて結構です。
今すぐお引き取りください。
息を引き取って頂いても構いません。
123デフォルトの名無しさん:2013/05/16(木) 18:53:42.37
ポインタを何だと思っているのか知らないが、
ポインタに咬まれて大怪我でも負ったのか?
124デフォルトの名無しさん:2013/05/16(木) 18:58:30.02
ポインタのポインタとか絶対使わないでしょ?
絶対使わないといけない場面がない
125デフォルトの名無しさん:2013/05/16(木) 19:00:35.10
なら使わなくていいだけのことじゃん
126デフォルトの名無しさん:2013/05/16(木) 19:02:26.34
データ本体集合(=配列)がでかくて複製取れないけど
データ要素への参照集合を別途保持しときたい(=ポインタ配列)
データ本体の要素の書き換えは別途保持した側にも反映したい

配列のインデックスを保持する配列でも実装はできるが…
127デフォルトの名無しさん:2013/05/16(木) 19:02:36.65
>>125
俺は勿論使ってないけど君だって使う必要無いじゃん?
使ってるの?
128デフォルトの名無しさん:2013/05/16(木) 19:02:45.56
int main(int argc, char **argv);
129デフォルトの名無しさん:2013/05/16(木) 19:04:55.64
>>127
コマンドライン引数とか多次元配列とか
130デフォルトの名無しさん:2013/05/16(木) 20:08:53.75
>>115
そのためにrealloc()があるだろ
131デフォルトの名無しさん:2013/05/16(木) 20:24:08.74
そんな欠陥関数使わない
132デフォルトの名無しさん:2013/05/16(木) 20:26:40.71
コンストラクタ/デストラクタのないC言語ならrealloc()で十分
133デフォルトの名無しさん:2013/05/16(木) 20:27:18.57
ここは自分の経験不足と視野の狭さを延々とアピールする場ではありません
134デフォルトの名無しさん:2013/05/16(木) 20:31:11.73
realloc()がいけない理由を説明してから言え
135デフォルトの名無しさん:2013/05/16(木) 20:34:55.35
発狂w
136デフォルトの名無しさん:2013/05/16(木) 20:36:17.77
発狂wじゃねーよ
この場合理由を答えられないお前が負けだ
137デフォルトの名無しさん:2013/05/16(木) 20:40:57.40
結局の所、関数呼び出しだってポインタ操作なのに
ポインタ使わずに出来るのか?
138デフォルトの名無しさん:2013/05/16(木) 20:41:05.45
拡張されるとポインタが変わることもあるし変わらないこともある
139デフォルトの名無しさん:2013/05/16(木) 20:51:31.09
僕の肛門も拡張されそうです
140デフォルトの名無しさん:2013/05/16(木) 21:08:35.41
>>134
www無恥www無能www
141デフォルトの名無しさん:2013/05/16(木) 21:52:06.92
realloc()って欠陥有りなの?
142デフォルトの名無しさん:2013/05/16(木) 21:54:54.37
>>141
いや、普通に使うよ。
143デフォルトの名無しさん:2013/05/16(木) 21:56:18.00
ret = realloc(ptr, size); ただし size が 0 だった

元ptr は開放されるのか?
ret は非NULLなのか?
14495:2013/05/16(木) 22:19:56.06
速いかどうかだけ聞きたい
別に使うとかじゃなくて知識としていれておきたい
145デフォルトの名無しさん:2013/05/16(木) 22:22:01.65
size0のreallocがそもそも無意味。0に再割り当てするならfreeを使う。
146デフォルトの名無しさん:2013/05/16(木) 22:22:12.35
>>144
速いって、なにと比べて?
147デフォルトの名無しさん:2013/05/16(木) 22:37:48.49
>>146
自動や静的に比べて
148デフォルトの名無しさん:2013/05/16(木) 22:45:49.29
ポインタっていうのはmalloc()とかで動的に確保したメモリのことを言ってるんだろうか。
149デフォルトの名無しさん:2013/05/16(木) 22:46:10.04
>>147
自動や静的と何を比べるの?
150デフォルトの名無しさん:2013/05/16(木) 22:47:34.39
>>149
実際にプログラムを実行したときにどちらが処理の時間が速いか
151デフォルトの名無しさん:2013/05/16(木) 22:50:47.60
>>150
どちらというのは自動や静的と何を指す?
152デフォルトの名無しさん:2013/05/16(木) 22:54:25.54
p = tbl;
for (i = 0; i < SIZE; i++) *p++ = 0;
for (i = 0; i < SIZE; i++) tbl[i] = 0;

大昔は配列にアクセスするのに上のようにポインタを使ったほうが速いって
話もあったけど、最適化されるからそういうテクニックは無駄ってことになったんだよな。

具体的にどういう状況で使うか分からないと「ポインタは速いか」だけじゃね。
最後は、実際に動かして計測しないと分からないって話になるんだけど。
153デフォルトの名無しさん:2013/05/16(木) 22:56:41.56
>>151
ポインタで指した自動変数や関数と
newで作った変数や関数
154デフォルトの名無しさん:2013/05/16(木) 22:59:28.25
>>153
int xxx;
int *p1 = &xxx;
int *p2 = new int();

*p1 = 0;
*p2 = 0;

これでどっちが速いかって話?
155デフォルトの名無しさん:2013/05/16(木) 23:00:28.67
>>153
スレ違い
156デフォルトの名無しさん:2013/05/16(木) 23:02:05.49
>>153
き違い
157デフォルトの名無しさん:2013/05/16(木) 23:02:29.64
>>154
うん

それに
int a;
a = 0;

も加えてほしい
158デフォルトの名無しさん:2013/05/16(木) 23:03:18.76
もしかして最近はCとC++の区別もつかない雑魚が紛れ込んでるのか?
159デフォルトの名無しさん:2013/05/16(木) 23:05:03.56
例えば構造体の奥底に int data[100000]; があったとして、
 m = 15; k = 123; j = 321;
 for(i = 0; i < 100000; i++) ss[m].mb[k].aa[j].data[i] = 0x12345;
みたいにアクセスするよりも
 m = 15; k = 123; j = 321;
 int *p = &(ss[m].mb[k].aa[j].data[0]);
 for(i = 0; i < 100000; i++) *p++ = 0x12345;
の方が高速じゃないかな
160デフォルトの名無しさん:2013/05/16(木) 23:06:59.81
>>157
それが一番速いよ。
ポインタなんて無駄だから使う必要ない。
よかったね。
161デフォルトの名無しさん:2013/05/16(木) 23:28:01.00
>>145
無意味になりえるから size のチェックをして
相応に分岐しましょうね ってことになる

一応 やっても良いことになってるけど実装依存だったかな
malloc(0) の時の戻り値も同様で
162デフォルトの名無しさん:2013/05/16(木) 23:37:06.55
ANSI Cを準拠してない組み込み系なら注意が必要
163はちみつ餃子 ◆8X2XSCHEME :2013/05/17(金) 00:02:30.72
例えば C99 以降なら構造体の最後のメンバは不完全型 (サイズが確定してない型) でもよいことになってる。
こういうのが許される。

struct foo {
int a;
int b[];
};

でも、その場合にはふたつ以上のメンバを持つことが必要という制約はある。
この制約はやはりサイズがゼロのオブジェクトを許すと面倒なことになるからだと思う。

malloc(0) は未定義ではあるものの、失敗する (ヌルを返す) 実装も許されることを考えれば常識的には避けるべき。
Posix 的には処理系定義でヌルを返すか一意なポインタを返すかのどちらかということになってる。
http://pubs.opengroup.org/onlinepubs/009695399/functions/malloc.html
164デフォルトの名無しさん:2013/05/17(金) 00:07:11.38
二重forを書くのが面倒臭いんですがマクロ的なもの無いですか?

F(i,1,3,j,1,2)=for(j=1; j<=3 j++)for(j=1; j,=3; j++)みたいに
165デフォルトの名無しさん:2013/05/17(金) 00:14:35.68
#define F(i,lo1,hi1,j,lo2,hi2) for(i=(lo1); i<=(hi1); i++) for(j=(lo2); j<=(hi2); j++)
166はちみつ餃子 ◆8X2XSCHEME :2013/05/17(金) 00:18:19.92
>>159
まともなコンパイラなら最適化されてどっちも同じような感じになる。
167デフォルトの名無しさん:2013/05/17(金) 00:19:25.10
C言語は面倒くさいものです
マクロを使って変態文法を編み出すこともできなくはありませんがオススメはしません
168デフォルトの名無しさん:2013/05/17(金) 00:20:55.81
>>165
凄いですねそれ
まじで出来るんですか?
ちなみにiとjは良く使うからi固定して
F(1,4,1,5)みたいにもできますか?
まぁもちろんi++とj++も仕方ないとして
169デフォルトの名無しさん:2013/05/17(金) 00:21:58.67
170デフォルトの名無しさん:2013/05/17(金) 00:26:08.28
>>168
これ以上、省略しても意味ない。
素早く打てるようにブラインドタッチを練習しろ
171デフォルトの名無しさん:2013/05/17(金) 00:28:52.91
>>170
ブラインドタッチは指の疲労がやばいです
九九のプログラム
F(i,1,9,j,1,9)printf("%d\n",i*j);
凄いな凄すぎる
これを
F(1,9,1,9)pd(i*j);
には
さすがにこれは無理ですか?誰か作って下さい!
二重ループの部分があれば9割9分iとj使って1から10までとかだから
まじで面倒臭いです コピペも探すのに苦労
172デフォルトの名無しさん:2013/05/17(金) 00:32:52.81
もっと言えば,も相当面倒スペースで,の代わりできないですか?
F(1 9 1 9)pd(i*j);
173デフォルトの名無しさん:2013/05/17(金) 00:33:22.29
もうこれでよくね
http://ideone.com/lO11hS
174デフォルトの名無しさん:2013/05/17(金) 00:33:27.57
#define G(lo1,hi1,lo2,hi2) for(i=(lo1); i<=(hi1); i++) for(j=(lo2); j<=(hi2); j++)
#define pd(n) printf("%d\n",(n));
175デフォルトの名無しさん:2013/05/17(金) 00:33:57.58
>>169
それ
ptr = malloc(...
printf("%p\n", ptr);
free(ptr);
printf("%p\n", ptr);
と同じで printf で ptr を表示しても意味ないと思うよ?
176デフォルトの名無しさん:2013/05/17(金) 00:35:41.76
プログラマーって効率図るために
>>174さんのようなマクロ使いまくってるわけですか?
177デフォルトの名無しさん:2013/05/17(金) 00:36:59.21
使うわけない
競技プログラミングくらい
まともなエディタでも覚えれば済む話
178デフォルトの名無しさん:2013/05/17(金) 00:37:51.84
>>174
かなり使えそうですね
","はさすがに" "で代用できないですか?
親指の位置にあるスペースで代用したいです
179デフォルトの名無しさん:2013/05/17(金) 00:38:59.27
効率化と称して俺俺仕様のマクロを作って書いた
-- 1年後 --
何やってるかさっぱりわからなくなってた+コードを追う気力が失せた
180デフォルトの名無しさん:2013/05/17(金) 00:39:00.52
タイピングが嫌ならrubyでもやってなさい
181デフォルトの名無しさん:2013/05/17(金) 00:39:58.56
>>177
便利なエディタだとバックプログラムの影響でかなり重くなっちゃうんですよね
だからtredpadかメモ帳でプログラム書くのが一番速いんですよ
182デフォルトの名無しさん:2013/05/17(金) 00:45:38.71
マクロ便利過ぎワロタw
183デフォルトの名無しさん:2013/05/17(金) 01:18:59.93
184デフォルトの名無しさん:2013/05/17(金) 01:37:21.05
覚えておくがいい
お前にとって便利な武器は
お前を苦しめる敵が使っても便利な武器だということを
185デフォルトの名無しさん:2013/05/17(金) 10:23:13.07
この調子だとIOCCCスレになるな
186デフォルトの名無しさん:2013/05/17(金) 11:26:02.19
1988年のwestley.c(円形のコードで円周率が出る)が好き
187デフォルトの名無しさん:2013/05/17(金) 14:20:42.05
#define DATA_LENGTH (256)
#define BLOCK_LENGTH (32)

const int nBlock = DATA_LENGTH / BLOCK_LENGTH;
int block[nBlock]; // コンパイルエラー

Visual Studio 2010 使ってるんだけど、上記のコードがコンパイルできません・・・
なぜコンパイルできない?
ググってみたけど、const int は定数扱いで、コンパイルできると多くのサイトで書かれている。
Visual Studio が規格に準拠してない?
188デフォルトの名無しさん:2013/05/17(金) 14:38:36.12
>>187
別言語の解説サイト見てもしょうがないだろ
C言語ならコンパイルできなくて当然
189デフォルトの名無しさん:2013/05/17(金) 14:52:49.90
>>188
それC++でしか通らないよ
勘違いしてると思う
よく読んでみな
190デフォルトの名無しさん:2013/05/17(金) 15:49:31.26
どこかで、C99でできるって見たんだけど、気のせいか?
まあ、どうでもいいけど。
191デフォルトの名無しさん:2013/05/17(金) 16:22:10.19
ideoneのC99でコンパイルしたら、グローバル変数は#defineじゃないとだめだった。
ローカル変数だと

int size = 100;
int tbl[size];

とかconstつけなくてもOK。
192デフォルトの名無しさん:2013/05/17(金) 18:11:07.90
そもそもVSってC99対応してないんじゃないっけ
193デフォルトの名無しさん:2013/05/17(金) 18:13:29.68
gccで「ほぼ」C99に対応している
194デフォルトの名無しさん:2013/05/17(金) 20:45:21.33
誰か数独を解くプログラムを作ってください・・・
自分で作ってみた http://ideone.com/SRAHM0
けど、ソースコードが長くて汚い上に、解けない場合もある・・・
195デフォルトの名無しさん:2013/05/17(金) 21:17:02.56
>>194
色々と戦略を適用するので長いのは当然だ
でも長いから読むのは適当にしてエスパーする

数独は理詰めだけでは解けない問題があるので
行き詰まったら複数の可能性を順番に試していって
解けなければバックトラックする必要がある
196デフォルトの名無しさん:2013/05/17(金) 21:20:08.61
アルゴリズムの話ならスレチ
197デフォルトの名無しさん:2013/05/17(金) 22:20:50.89
総当たりじゃなくて理詰めで解ける方法があれば一番なんですが、
やっぱり最終的にはバックトラックが必要なんでしょうかね。
バックトラック法を実装してみます。
198デフォルトの名無しさん:2013/05/17(金) 22:59:43.41
BackTrackというOSを中2病みたいに批判して使わないやつはなんなの?
意識高いクズはどうしようもないね
199デフォルトの名無しさん:2013/05/17(金) 22:59:57.65
>>194
145行目は
× > fprintf(stdout," %d ",plane->cell[i][j]);
○ > fprintf(stdout," %d ",plane->cell[i][j].current);
だよね
200デフォルトの名無しさん:2013/05/17(金) 23:35:47.13
>>199
ものすごい初歩的なミスですね。直しときました。
201デフォルトの名無しさん:2013/05/17(金) 23:39:28.74
BagDragはすぐにとっ捕まるから他の方法を考えたほうがいい
202デフォルトの名無しさん:2013/05/17(金) 23:40:52.51
128*128回の再帰でスタックオーバーとか使えねーなこの言語
203デフォルトの名無しさん:2013/05/17(金) 23:53:18.32
204デフォルトの名無しさん:2013/05/18(土) 00:41:08.86
>>202
スタックサイズ指定すればいい
205デフォルトの名無しさん:2013/05/18(土) 00:43:02.03
>>194
>>7,183
206デフォルトの名無しさん:2013/05/18(土) 01:23:47.58
>>198
最近は kali linux が熱いようで
207デフォルトの名無しさん:2013/05/18(土) 04:21:55.38
ゲー専はもう挫折したのか
短い人生だったな
208デフォルトの名無しさん:2013/05/18(土) 11:41:11.62
民主党は、パナソニック(ガンバ)やシャープ、ソニーを潰す気だった?
http://www.youtube.com/watch?v=rycI46jG_Rg
.
円高デフレと産業の空洞化は、在日の戦略だった?
http://www.youtube.com/watch?v=iOKGvBsWtgg
209デフォルトの名無しさん:2013/05/18(土) 12:04:59.70
>>207
ゲーム専門学校ですしバカの極みです
210デフォルトの名無しさん:2013/05/18(土) 14:37:23.46
就活しているんですが今のところ内定0です。
希望はソフトウェア開発でプログラミングをしたいと思っています。
学生時代C言語に打ち込んでいたので1000行くらいのプログラムなら書けます。
このご時世簡単に内定が取れるとは思ってないのですが10社連続で落ちてしまい
さすがに精神の限界です。プログラマの方がいればアドバイス下さい。

>>207>>209のような意見はいりません。
211デフォルトの名無しさん:2013/05/18(土) 14:41:51.90
まず2chで釣りするのをやめて就活に専念しましょう
212210:2013/05/18(土) 14:44:59.83
作れるプログラムの内容と言いますと

ftpによる通信プログラム
ニューラルネットワークを応用したモデルの構想
Androidアプリ(簡単なゲーム)
動画編集ソフト(動画に効果をつけたりするアプリ)

他にできる言語はCRL,C++,java,javascriptです。

高2の時にプログラミングに出会い、以降毎日6,7時間以上
コンピュータの勉強をしていました。2浪で現在23歳なのですが
中々希望通りの就職が見つかりません。プログラミングだけで
起業は無理でしょうか?どこも内定が無いならそうするしか無さそうです。
213デフォルトの名無しさん:2013/05/18(土) 15:12:55.56
> 学生時代C言語に打ち込んでいたので1000行くらいのプログラムなら書けます。

お引取りいただいて結構です
214デフォルトの名無しさん:2013/05/18(土) 15:28:50.84
>>210
ゲーム専門学校ですしバカの極みです
215デフォルトの名無しさん:2013/05/18(土) 15:50:41.53
まあプログラムが書けることは完成できることの第一歩でしか
ないからね。まとまったものを作れるかどうかが問題。
216デフォルトの名無しさん:2013/05/18(土) 16:43:28.53
>>212
で?
お前にしかないスキルは何なの?

誰でも持ってるようなスキルしか持ってない奴なんか代わりはいくらでもいるんだから
それで希望の業種に就職できるわけないだろ、お前に選ぶ権利なんかないんだから勘違いするな

就職が無理なら起業ってのも頭悪すぎ
起業ってのは勝算あってのものであって就職すらできない奴の代替案ではない
人並みのことすらできない奴に起業なんか無理

業種や給与や地域や環境を選ばずに就職する他お前に選択肢はない
217デフォルトの名無しさん:2013/05/18(土) 17:58:49.57
もしかしてQZの前身か?
いずれ宿題ニートになるぞ
218デフォルトの名無しさん:2013/05/18(土) 18:38:07.17
宿題すらできない荒らしよりはまし
なんか書いてごらんよ?
219デフォルトの名無しさん:2013/05/18(土) 18:51:08.22
QZがこんなところにも潜伏していた
220デフォルトの名無しさん:2013/05/18(土) 18:55:41.86
>>215
まとまったものは今までに何回も作りました。
マインスイーパ
テトリス
株の変動を解析するプログラム
写メで移した文字をコンピュータで読み込むプログラム
等です。


>>216
でもSEやPGは未経験の人も案外多いと聞きました。
僕は実際、プログラミングの経験があって色んなものに挑戦しようという
意識が人よりも高いと思います。だからアドバンテージにはなると思うの
ですが。起業に関してはその通りだと思います。最後の最後の最後の手段
にしようと思います。
221デフォルトの名無しさん:2013/05/18(土) 19:02:14.13
>>218
今まで作ったプログラムでいいですか?
222デフォルトの名無しさん:2013/05/18(土) 19:32:45.36
その程度の実力で起業とかバカだなクズの極みw
自殺行為に等しいよ

無能ゲーム専門は生きてる価値すらないなw
223デフォルトの名無しさん:2013/05/18(土) 19:53:28.48
>>222
だったらテトリス作ってみろよ
半年勉強したくらいじゃ作れんぞ
224デフォルトの名無しさん:2013/05/18(土) 19:56:31.16
起業は仕事をもらえるコネがあるかどうかで、技術はテトリス作れたらむしろ余裕だろ。
225デフォルトの名無しさん:2013/05/18(土) 20:00:13.70
>>220
こういうのはどうだろう
テトリス、ただしステレオグラム(ドットがちらばっている絵2枚をじっとみていると立体が浮かび上がってくる奴だね)での実装

俺も作ってみたいのだが
226デフォルトの名無しさん:2013/05/18(土) 20:01:45.89
画像からパターン認証って凄いな本当に作ったのか?
227デフォルトの名無しさん:2013/05/18(土) 21:32:54.10
コネを利用するのではなく、自分がコネになりたい。
228デフォルトの名無しさん:2013/05/18(土) 23:10:12.90
数日前から数独を解くプログラム作ってたけど、バックトラック法というのがよく分からない。
とりあえず、今できてるところまでで簡単な問題はほとんど解けるので、この辺でやめとく。
だれか暇な人いたらバックトラック法で数独の問題を解くプログラムつくってください。
229片山博文MZパンク ◆0lBZNi.Q7evd :2013/05/18(土) 23:21:59.41
俺のホームページにソース付きで数独の問題を解いたり作ったりするソフトを公開している。あまり速くないけど。
230デフォルトの名無しさん:2013/05/18(土) 23:52:16.17
>>229
お前のサイトのはキーロガーしか興味ねえわ
今度Cでつくるときに参考にするけどな
231デフォルトの名無しさん:2013/05/18(土) 23:54:01.54
キーロガーなんかwindows.hの練習見たいなもんだろ
232デフォルトの名無しさん:2013/05/19(日) 00:28:02.37
>>229
あなたプログラマなんですか?凄いですよね。
かなり幅広い事やってますね。実務では何やってるんですか?
233デフォルトの名無しさん:2013/05/19(日) 00:34:34.43
Borland C++ Compiler 5.5.1を簡単にインストールできるプログラムです。
  ↑
これ凄くないですか?何でそんな事できるんですか?
234デフォルトの名無しさん:2013/05/19(日) 00:37:06.48
>>229
wepキーを解析するソフトとか作れますか?
235デフォルトの名無しさん:2013/05/19(日) 02:15:05.81
次の患者さんどうぞー
236片山博文MZパンク ◆0lBZNi.Q7evd :2013/05/19(日) 05:42:43.83
>>233
環境変数の変更方法、インストーラーとコマンドプロンプトとエディターの使い方を勉強すれば、だれでもできる。
237片山博文MZパンク ◆0lBZNi.Q7evd :2013/05/19(日) 05:44:01.23
>>234
すでにたくさん出回っているものは作る必要ない。
238デフォルトの名無しさん:2013/05/19(日) 05:53:19.97
>>234
wep crackで検索
239デフォルトの名無しさん:2013/05/19(日) 07:29:44.01
>>233
Install Shield くらい憶えろよ
240デフォルトの名無しさん:2013/05/19(日) 11:20:51.58
というか今時bccなんか使ってんのか
241デフォルトの名無しさん:2013/05/19(日) 11:42:21.76
片山博文MZパンク
Windows向けの簡易的ボットネット風やRAT風のサンプルコードと解説ページ作ってください
日本人でも使えそうななもの

>>234
本当にバカだなそんなのbacktrackにはいってるだろ?
242デフォルトの名無しさん:2013/05/19(日) 12:02:01.22
自演キタコレ
243デフォルトの名無しさん:2013/05/19(日) 13:24:29.53
>>241
つWindowsのサービス

サービスの登録ってだまあってできるもんでしたっけ?
244デフォルトの名無しさん:2013/05/19(日) 15:22:10.18
ポインタの仕組みをきっちり理解するために参考になる本とかサイトってある?
大学で配られた教科書は表面をなぞってるだけでイマイチしっくりこない
一応自作関数の定義とか構造体くらいまでは理解してるレベル
245デフォルトの名無しさん:2013/05/19(日) 15:28:53.21
アセンブラやるといいよ
246デフォルトの名無しさん:2013/05/19(日) 15:46:06.31
セグメントの理解、.rodata、デバッガを使ってアドレスの中身を見る

これをやれば余裕
247デフォルトの名無しさん:2013/05/19(日) 15:48:23.53
>>244
つ「データ構造」―リンクリスト、スタック、キュー、木構造(二分木とかいろいろ)、ハッシュテーブル、ヒープソート、他には何があるかな‥‥
248片山博文MZパンク ◆0lBZNi.Q7evd :2013/05/19(日) 16:46:38.26
ボットネットなんて本当のウイルスじゃないか。そんなもの作ったら吊し上げられちゃうよ
249デフォルトの名無しさん:2013/05/19(日) 16:50:50.99
アセンブラをさわりだけでいいからやるといい

全てが数値で格納・表現されることと
間接メモリ参照がわかれば十分
250デフォルトの名無しさん:2013/05/19(日) 17:45:56.93
ゼロ・キャリー・オーバーフロー・シフト・スタックへのプッシュポップとか
251デフォルトの名無しさん:2013/05/19(日) 20:24:34.24
前にマクロについて質問したんですが

for(i=0; i<=10; i++)
の;が面倒臭いです。;は空白にできませんかね?
252デフォルトの名無しさん:2013/05/19(日) 20:33:02.28
そんなに面倒くさいなら息をするのも止めたら?
253デフォルトの名無しさん:2013/05/19(日) 20:39:14.60
だからそういうのが面倒ならCなんかやめとけって
254デフォルトの名無しさん:2013/05/19(日) 20:41:15.00
他の言語でもみんなこんな感じだぞ
255デフォルトの名無しさん:2013/05/19(日) 20:44:43.91
>>252
forが一番簡単な言語って何?
ruby以外でお願いします。
256デフォルトの名無しさん:2013/05/19(日) 20:44:49.04
>>251
そんなあなたにC++
空白にはできんが少し短く済む
257デフォルトの名無しさん:2013/05/19(日) 20:55:31.78
;を空白にできない理由は分かります。
i = 0とかが可能だからですよね?
でも;一個で済む方法とか無いですか?
258デフォルトの名無しさん:2013/05/19(日) 21:13:14.37
すみません、質問させてください。
配列の中身を表示後に逆順に並び替えて再表示させるにはどのようにすればいいのでしょうか?
「文字列caはabcdefです。並び替え後の文字列caはfedcbaです。」と言った感じの結果を表示させたいのですが中々上手く行きません…
すみませんがご協力頂けると有難いです。よろしくお願いします。
259デフォルトの名無しさん:2013/05/19(日) 21:16:29.59
>>257
病気ですね
初心者がよく罹ると言われている何でもマクロで短くしたくなる病です
他の人が読み辛く非常識である事が分かってくると治る事でしょう
260デフォルトの名無しさん:2013/05/19(日) 21:16:37.14
フリーのコンパイラ何を使えばいい?
261デフォルトの名無しさん:2013/05/19(日) 21:20:05.74
Visual C++ Express Edition
GCC

のどちらか環境に合わせて
262デフォルトの名無しさん:2013/05/19(日) 21:26:13.31
>>260
コンパイラ自体としては今も昔も gcc が定番かな、clang の評価はどうですか?
個人的には sizeof(int)=8/sizeof(long)=16 のコンパイラがほしい、本来こうあるべきと思うんだが
263デフォルトの名無しさん:2013/05/19(日) 21:27:03.91
2 or 4 のサイズの型がどちらか欠落してしまう
264デフォルトの名無しさん:2013/05/19(日) 21:29:56.83
>>262
いつの時代だよwww
ビット幅を明示したいなら int8_t int16_t 使え
265 ◆QZaw55cn4c :2013/05/19(日) 21:31:08.95
>>258
一般例に演繹する前に、たとえば 5 文字の "abcde" についてかんがえてみるのはどうでしょう?
char s[] = "abcde";
に対して、
s[0] <-> s[4]
s[1] <-> s[3]
‥‥
次に 6文字 "abcdef" について〜
納得いかなかったら "abcdefg", "abcdefgh" 、あるいは逆に "abcd", "abc"〜

最後に "a", "" について確認
文字列の最後にはナルキャラクタが必ず置かれているのを忘れずに
あ〜私もいろいろと宿題をかかえていますけど困った困った
266デフォルトの名無しさん:2013/05/19(日) 21:33:33.30
>>262
レジスタサイズとメモリ効率の
どちらをどのくらい優先するのが「自然」なのかは
意見の分かれる所
267デフォルトの名無しさん:2013/05/19(日) 21:34:10.67
>>264
へえ
みんな clang 使ってるの?それとも新しいコンパイラがあるの?watcom とか?intel のやつってただで使えるの?
ビット幅を明治したいのではなくて int なら当たり前に64ビットであってほしい‥‥cygwin32 は LLP64 だし、MSVCRT のせいで %lld が使えないんだ‥‥
268244:2013/05/19(日) 21:36:45.04
スタック、ヒープ、セグメントって関数や変数の配置云々のやつ?

デバッガは一応変数の中身を確認するためにgdbを使ったけどその延長?

アセンブラのさわりってHacking:美しき策謀とか?
大学の図書館に5冊くらい入荷してたけど

質問多くでスマソ
269デフォルトの名無しさん:2013/05/19(日) 21:37:28.85
intelは試用なら無料
270デフォルトの名無しさん:2013/05/19(日) 21:38:32.70
さわり=曲のサビの事、転じて一番重要な所、要点
271デフォルトの名無しさん:2013/05/19(日) 21:45:08.96
今時のアセンブラを勉強する本が皆無なのがねえ
古いのでいいならあるんだが
272デフォルトの名無しさん:2013/05/19(日) 21:49:33.40
はじめて読む486が頭ひとつ抜けて良書だったのだが‥‥今では実行環境は構築できないだろうな‥‥
273デフォルトの名無しさん:2013/05/19(日) 21:50:45.77
>>268
俺はHacking:美しき策謀で理解したけど
別に他のやつでもいいだろ

アセンブラやるなら別のでやれ
274デフォルトの名無しさん:2013/05/19(日) 21:51:21.71
>>271
その点は、もうじき冬が明けると思っている
え、なぜ? 今日はいい天気だなあ
275デフォルトの名無しさん:2013/05/19(日) 21:53:39.25
>>274
わくわく!nasm? masm32? gcc のインラインとか?
276デフォルトの名無しさん:2013/05/19(日) 21:54:26.54
早くスクリプトキディからクラッカーになりたい
277デフォルトの名無しさん:2013/05/19(日) 21:58:05.87
パスワード解析ソフトについてどう思います?
パスゲッターとかいうソフトありますが。
278デフォルトの名無しさん:2013/05/19(日) 22:01:26.09
違法です
279デフォルトの名無しさん:2013/05/19(日) 22:03:29.03
パスワード解析技術って上がってるんですか?
それが知りたい。
280244:2013/05/19(日) 22:05:10.93
>>273
わかりにくかったとか?

今から始めるとしてアセンブラに関しての良書とかオススメってある?
281デフォルトの名無しさん:2013/05/19(日) 22:06:55.69
実際に動かさないので良ければ
はじめて読む486でもいいんだけどね
282デフォルトの名無しさん:2013/05/19(日) 22:08:17.68
アセンブラはやめとけオートマトンやるはめになるぞ。
283デフォルトの名無しさん:2013/05/19(日) 22:08:29.45
>>278
解析自体は違法ではないと思っていたんだがこの前の著作件法はなんだあれ?
284デフォルトの名無しさん:2013/05/19(日) 22:12:51.27
アセンブラ勉強して何になるの?
1と0の列見て楽しいか?もっと高級な機能や概念を習得するべき。
285 ◆QZaw55cn4c :2013/05/19(日) 22:30:33.43
>>284
多バイト長演算をキャリーフラグチェックやローテートが使えない高級言語(Cを含む)で実装するのは無理筋
286デフォルトの名無しさん:2013/05/19(日) 22:37:05.52
>>284
「何を行うとどういう仕組みで恐ろしい事が起きるか」
これを知ってると知ってないとじゃ大違い
287デフォルトの名無しさん:2013/05/19(日) 22:41:20.88
aとbがNULLになるまでループを続けるにはどうすればいいか教えてください
288デフォルトの名無しさん:2013/05/19(日) 22:41:49.12
aとbがNULLになるまでループを続ければいい
289片山博文MZパンク ◆0lBZNi.Q7evd :2013/05/19(日) 23:07:53.73
>>287
(a == NULL && b == NULL)を終了条件式にしてループ
290デフォルトの名無しさん:2013/05/19(日) 23:15:33.83
break死ね
291デフォルトの名無しさん:2013/05/19(日) 23:17:50.62
bがNULLでない状態でaがNULLになって
ぬるぽになって文句を言ってくるに一票
292デフォルトの名無しさん:2013/05/19(日) 23:23:03.63
293デフォルトの名無しさん:2013/05/19(日) 23:23:58.37
aとbは独立してるの?
294デフォルトの名無しさん:2013/05/19(日) 23:24:32.92
>>287
(a||b)
295デフォルトの名無しさん:2013/05/19(日) 23:36:51.14
>>258
VC(MS?)ならstrrevがある
296デフォルトの名無しさん:2013/05/19(日) 23:45:34.59
>>294
ガチャピン発見
297デフォルトの名無しさん:2013/05/20(月) 00:35:15.23
#include<stdio.h>
#include<math.h>

int main(){
int x;
double y;

for(x=0;x<16001;x++){
y=1/sqrt(x);
printf("%d %f\n",x,y);
}

return 0;
}

この計算式を出力したいのですが動作が停止してしまいます。
分かる方おられないでしょうか?
298デフォルトの名無しさん:2013/05/20(月) 00:36:23.51
y=1/sqrt(x);
0除算
299デフォルトの名無しさん:2013/05/20(月) 00:38:46.31
>>298

盲点でした
ありがとうございます
300デフォルトの名無しさん:2013/05/20(月) 00:43:14.82
せめてどの位置でコケているかを
自力で特定できるようにならないとツラいぞえ

つ printf デバッグ
301デフォルトの名無しさん:2013/05/20(月) 01:03:20.09
0除算で例外発動しても教えてくれないのはどうしたものか‥‥cygwin の bash はそうなんでちょっと困ってる
302デフォルトの名無しさん:2013/05/20(月) 01:05:01.83
!(a==NULL && NULL)
303デフォルトの名無しさん:2013/05/20(月) 01:05:50.13
!(a=NULL && b=NULL)

NAND
304258:2013/05/20(月) 01:07:07.39
皆さん有難うございました。無事課題は完成しました!また何か有りましたら質問をさせて頂くかもしれませんがその時はよろしくお願いします。
305デフォルトの名無しさん:2013/05/20(月) 01:07:26.31
(a == NULL && b == NULL)
だと片方がNULLだと処理落ちしない?
306デフォルトの名無しさん:2013/05/20(月) 01:26:51.22
>>305
>>289のことか?
その式を「終了条件」とすれば、問題ない

while(1) {
 …
 if(a == NULL && b == NULL) break;
}
とか
while( ! (a == NULL && b == NULL) ) {
 …
}
みたいに
307デフォルトの名無しさん:2013/05/20(月) 07:53:26.15
}; ってメジャーなスタイル?
308デフォルトの名無しさん:2013/05/20(月) 08:07:22.97
>>307
whileの終了の}とかだと、;をつけないと次の行に
gotoのラベルが書けない実装もあったりする。
309デフォルトの名無しさん:2013/05/20(月) 08:14:03.89
なんてコンパイラ?
310デフォルトの名無しさん:2013/05/20(月) 11:30:33.67
変なクセをつけると elseさんが泣いちゃうぞ
311デフォルトの名無しさん:2013/05/20(月) 11:58:41.71
do { } while() なら末尾に ; 必須だけど
ブロックの末尾 } とは違う話だしな。。。
312 ◆QZaw55cn4c :2013/05/20(月) 12:39:13.65
構造体の末尾にセミコロンを付け忘れて、ん?となるのは今でもしょっちゅう
313デフォルトの名無しさん:2013/05/20(月) 12:40:43.33
お前だけだよ
314デフォルトの名無しさん:2013/05/20(月) 13:43:02.68
>>312
そういう価値がないうえに頭の悪さアピールするだけの日記を書くからウザがられるんだろ
コテ叩きに関してはコテのほうが悪いと言わざるを得ない
315デフォルトの名無しさん:2013/05/20(月) 13:57:51.22
>>312
こんな自虐コメを書いておいて、いざ叩かれると「ID導入しろ」だもんな
説得力ゼロ
316デフォルトの名無しさん:2013/05/20(月) 14:54:00.07
◆QZaw55cn4cクソコテ
他人のブログコメントまで出向くクソコテ
317デフォルトの名無しさん:2013/05/20(月) 15:21:18.82
>>307
構造体とかの必須モノは置いとくとすれば、マイナーだろうね
マクロでの if-else 事故を減らす役割は期待できそうだけど
318デフォルトの名無しさん:2013/05/20(月) 15:25:59.75
つけるとちょっと気持ち悪いような感じ
319デフォルトの名無しさん:2013/05/20(月) 15:39:41.23
◆QZaw55cn4cクソコテ
他人のブログコメントまで出向くクソコテ
320 ◆QZaw55cn4c :2013/05/20(月) 19:44:50.08
>>317
マクロは do { } while(0);で括れってQZが逝ってた
321デフォルトの名無しさん:2013/05/20(月) 19:52:08.71
マクロなんか使うなカス
322デフォルトの名無しさん:2013/05/20(月) 19:59:49.86
カスよりクズと言ったらいいかも
323デフォルトの名無しさん:2013/05/20(月) 20:57:55.02
何で構造体{}の後ろは;が必要なのに
普通の{}ブロックの後ろは;はいらないの?
これの理由が全然分らない。
分らなくてそれが悔しくて自殺を考え事もある。
何故だろう?
324デフォルトの名無しさん:2013/05/20(月) 21:02:31.64
じゃあ死ねよ
325デフォルトの名無しさん:2013/05/20(月) 21:04:05.27
>>323
構造体はブロックでも文ではないので、文にするために;が必要なんじゃなかったかな。
ブロックはそれだけで文なので;はいらない。
326デフォルトの名無しさん:2013/05/20(月) 21:05:33.18
なんか変だな。
正確には、「ブロックでも文でもないから」だな。
327デフォルトの名無しさん:2013/05/20(月) 21:17:50.83
>>325
何で?{}で終わったらその後にfor()がこようと、別に宣言しようと
{}で完結してるんだから;が無くても大丈夫でしょう?何故;をつける?
どんなトークンがこようと前の}以前に影響を与える事はない。
328デフォルトの名無しさん:2013/05/20(月) 21:22:40.14
構造体の末尾の}カッコの後ろに、変数名を付けることが出来るようにするためだよ。
329デフォルトの名無しさん:2013/05/20(月) 21:23:47.25
>>328
ちょっとまってくれ
それは違う
変数の後ろにaがつけば
a;でこれは文だ
330デフォルトの名無しさん:2013/05/20(月) 21:30:26.57
>>329
お前は何を言ってるんだ
331デフォルトの名無しさん:2013/05/20(月) 21:35:18.93
#include <stdio.h>

typedef struct { int a;} aaa;
struct bbb {int b;};

int main(){
aaa a1;
struct bbb b1;

a1.a = 123;
printf("%d¥n", a1.a);

b1.b = 456;
printf("%d¥n", b1.b);

return 0;
}
332デフォルトの名無しさん:2013/05/20(月) 22:03:50.80
>>320
do { } while() で囲むのは判るが ; まで(マクロに)含めるのか?
333デフォルトの名無しさん:2013/05/20(月) 22:30:21.16
>>327
めんどくさいなあ。
そういう文法だからだよ。

>>328
が言うようなケースもあるし。

矛盾なく混乱も起きない自信があって、更に何らかのメリットを説明できるなら、標準化委員会にでも入って自分で提案してみたら?
334デフォルトの名無しさん:2013/05/20(月) 22:32:28.62
そういう文法だからはただの思考停止
>>328で良いのに何で思考停止するのか分からん
335デフォルトの名無しさん:2013/05/20(月) 22:37:50.20
>>334
それは違うんじゃね?
自分で調べないで、こんなところで聞いてるやつの方が思考停止だろ
336デフォルトの名無しさん:2013/05/20(月) 22:55:00.89
思考停止ではないね。
そんなこと言ってたら、
何で文字列は""で、文字は''なんだろう?逆でもよくね?
何でブロックは{}で配列の添字は[]なんだろう?逆でもよくね?
とかそういうことまで考えなければならなくなる。
337デフォルトの名無しさん:2013/05/20(月) 23:04:58.26
そこまでの話じゃないだろ

struct { int a; } b, *c;
の b, *c とかを書けるような文法にしたら
; が必要になるのは必然だ

「b, *c とかを書けるような文法にしたのはなぜか」は「そうしたから」としか言えないが、
そう書けるようにするという条件で考えれば ; が必要になるのにはちゃんとした理由がある
338 ◆QZaw55cn4c :2013/05/20(月) 23:12:49.41
>>332
し、しまったorz
339デフォルトの名無しさん:2013/05/20(月) 23:48:27.77
ここで覚えたことを自分が言ったことみたいに言うなよw
340デフォルトの名無しさん:2013/05/20(月) 23:59:26.36
>>337
だったら
struct{{int a;}b,*c}
でもいいんじゃない?
341デフォルトの名無しさん:2013/05/21(火) 00:04:57.69
別にいいんじゃない
342デフォルトの名無しさん:2013/05/21(火) 00:05:06.28
それにそんな書き方ができるなら

for(i=0; i<=10; i++){a=3;}a;
これも可能だろ?wwwwww
343デフォルトの名無しさん:2013/05/21(火) 00:08:22.66
くだらねー
344デフォルトの名無しさん:2013/05/21(火) 00:09:30.46
死ねよ無能はくだらね
345デフォルトの名無しさん:2013/05/21(火) 00:10:27.50
>>342
いや、ぶっちゃけそれはOK じゃね?
346デフォルトの名無しさん:2013/05/21(火) 00:15:58.99
>>344
あんまり死ねって言われるの嫌だから止めてくれ
そういうのは
347デフォルトの名無しさん:2013/05/21(火) 00:20:45.18
>>336
実際そういうレベルの話をしているんだけどな
348デフォルトの名無しさん:2013/05/21(火) 00:38:22.93
#include <stdio.h>

int main ( void )
{
unsigned char a = 5;
unsigned char b;

b = ~a;

printf ( "%d\n", b );

return 0;
}

は250なのに、unsigned char a = 5; unsigned char b; を unsigned int a = 5; unsigned int b;
にすると-6になります。aもbも符合なし整数なのに。なんでですか。
349デフォルトの名無しさん:2013/05/21(火) 00:38:57.98
Cを書いたことない奴まで意味もわからずにはしゃいでるな
350デフォルトの名無しさん:2013/05/21(火) 00:41:55.88
勇士Q
351デフォルトの名無しさん:2013/05/21(火) 00:43:24.68
そいつ知ってる
352デフォルトの名無しさん:2013/05/21(火) 00:45:45.25
◆QZaw55cn4c
353デフォルトの名無しさん:2013/05/21(火) 00:50:19.03
>>348
プロモーションと"%u"
354デフォルトの名無しさん:2013/05/21(火) 00:52:14.58
ここまでQZの自演
355 ◆QZaw55cn4c :2013/05/21(火) 00:53:14.29
>>348
http://codepad.org/cgwv0P9e
printf() は渡される引数が signed か unsigned かは実行時に引き渡される第一引数中の書式指定子で判断します
コンパイル時に型宣言の情報がprintf() に届くわけではありません。
356片山博文MZパンク ◆0lBZNi.Q7evd :2013/05/21(火) 00:56:04.70
順番に考えてみよう。
unsigned charは、8ビット。演算子の~は、全部のビットを反転させる。8ビットの5は二進数で00000101だから、反転させると11111010。これをprintfに渡すとint型にキャストされて250になる。unsigned intは、32ビット。32ビットの5は、(以下略)
357デフォルトの名無しさん:2013/05/21(火) 01:01:34.61
片山博文MZパンクは必要
弟子になりたい
358デフォルトの名無しさん:2013/05/21(火) 01:07:55.13
357も片山の自作自演
359デフォルトの名無しさん:2013/05/21(火) 01:53:47.26
>>347
セマンティックスと、シンタックスとの区別が付くように成ったら、またおいで。
360片山博文MZパンク ◆0lBZNi.Q7evd :2013/05/21(火) 02:32:15.85
>>357
PayPalで二万円の授業料を払ってくれたら特別授業をしてあげるよ
361デフォルトの名無しさん:2013/05/21(火) 04:05:18.02
宣伝は2chからガッツリ請求されるんだったよな
362デフォルトの名無しさん:2013/05/21(火) 07:26:39.77
>>340
きめえ
363デフォルトの名無しさん:2013/05/21(火) 07:27:56.81
>>348
%d だから
%u にすれ
364デフォルトの名無しさん:2013/05/21(火) 10:49:43.58
printfのフォーマットと引数の型を厳密にチェックするコンパイラってうざいよね
longとintなんてLP64でもなきゃ同じなんだから
いちいちl付けなくてもいいじゃん
365デフォルトの名無しさん:2013/05/21(火) 13:56:04.68
そのうちlongが128になるかもな
366デフォルトの名無しさん:2013/05/21(火) 17:57:46.86
QZと片山の自演を防ぐためにはIDが必要
367デフォルトの名無しさん:2013/05/21(火) 18:18:14.53
>>366
こういうのが既に荒らしになってる件
368デフォルトの名無しさん:2013/05/21(火) 19:04:09.88
びびってんか?
369デフォルトの名無しさん:2013/05/21(火) 19:07:43.98
そういえばPerlスレが荒れてたから
このスレを避難用と称してPerlスレに張ったら
荒らしがぴたっと止まったな
370デフォルトの名無しさん:2013/05/21(火) 20:48:42.98
勝手な妄想すんな
371 ◆QZaw55cn4c :2013/05/22(水) 03:55:28.93
>>249
乗算、除算をシフトを使って実装できたら卒業だろうね、乗算は上桁からと下桁からの二通りがつくれるね。
372 ◆QZaw55cn4c :2013/05/22(水) 04:02:35.89
>>365
short int: 32bit, int:64bit, long int:128bit, long long int: そんなもんつくるな
っていうのがほしいな。いや int64_t とかがあるのは知ってるんだけれども
373デフォルトの名無しさん:2013/05/22(水) 04:03:18.00
>>366
自演の定義は?
374デフォルトの名無しさん:2013/05/22(水) 07:00:30.23
https://www.allbsd.org/~hrs/diary/201108.html]
GPL 違反が判明し、それが示談として決着した場合、 その製品をつくっていた企業は、ソースコードを公開して同製品の販売を継続することは許されるだろうか。
「示談をして争点に決着がついたのだから、問題はない」と思いがちだが、 実は GPLv2 Section 4 によると、それは許されないという解釈が可能である。
その企業は、当該 GPL ソフトウェアの権利を「自動的に」失っており、 そのソフトウェアを使うことは許可されない。
GPL には、それを回復させる条件の記載がないので、 将来にわたっても回復することはない
375デフォルトの名無しさん:2013/05/22(水) 08:31:30.29
>>374
回復の条項もない代わりに、再ライセンス禁止の条項もない。
ぶっちゃけ、ライセンス違反→はく奪、別ライセンスで開発→違反→
の無限ループが可能。
376デフォルトの名無しさん:2013/05/22(水) 12:26:39.83
文字が青くなりクリックしたらそのサイトにとべるようにするにはどうしたらいいでしょうか?ご教授お願いします
377デフォルトの名無しさん:2013/05/22(水) 12:31:01.95
(゚д゚)
378デフォルトの名無しさん:2013/05/22(水) 14:09:58.23
AKBの板野とどっちがいい?
379デフォルトの名無しさん:2013/05/22(水) 14:33:23.30
ハゲ板野
380デフォルトの名無しさん:2013/05/22(水) 14:54:48.81
>>378-379
AKBの板野と比べてハゲ野郎の方がいいなんてキチガイですかぁ? ハゲ専ですかぁ?
381デフォルトの名無しさん:2013/05/22(水) 15:07:40.30
おでんの具は何がいい?
俺はこんにゃく
382デフォルトの名無しさん:2013/05/22(水) 15:12:57.78
牛すじ
383デフォルトの名無しさん:2013/05/22(水) 15:45:50.40
質問ってここでしていい?
384デフォルトの名無しさん:2013/05/22(水) 16:06:41.33
>>1みたら大丈夫そうだったので

質問内容
WINAPI+Cで画像を拡縮回転変換したいんですが、なぜがねじりの動きが入ります

POINT point[3];
for(i=0;i<3;i++){
point[i].x = (LONG)(Xmult * cos(rad) * point[i].x - sin(rad) * point[i].y);
point[i].y = (LONG)(sin(rad) * point[i].x + Ymult * cos(rad) * point[i].y);
}

Plgblt()で出力

計算間違ってますか?スクリーン座標系なれてないので・・・・
385デフォルトの名無しさん:2013/05/22(水) 17:56:00.96
なまたまご
386デフォルトの名無しさん:2013/05/22(水) 19:29:33.15
なまむぎ
387デフォルトの名無しさん:2013/05/22(水) 19:42:03.46
一番早く理解する方法教えてください。
お願いします。
388デフォルトの名無しさん:2013/05/22(水) 19:44:01.67
5W1H
389デフォルトの名無しさん:2013/05/22(水) 19:46:55.61
>>384
くわしく追ってないけど
point[i].x = で 座標変換後の x を入れてるけど
次行の y 成分を求める式中に point[i].x を参照してる。
一旦中間変数に代入した後 point[i] へ書き戻したら?

tmp.x = ...
tmp.y = ....
point[i] = tmp;
390デフォルトの名無しさん:2013/05/22(水) 20:04:35.84
はじめての日本語
391デフォルトの名無しさん:2013/05/22(水) 20:19:54.78
>>389
それですね・・・・
そりゃおかしいわけだw
392デフォルトの名無しさん:2013/05/22(水) 20:30:17.05
徹底理解日本語
393デフォルトの名無しさん:2013/05/22(水) 21:27:09.90
これならわかる日本語
394デフォルトの名無しさん:2013/05/22(水) 21:31:18.12
日本語ポケットリファレンス
395デフォルトの名無しさん:2013/05/22(水) 21:40:55.69
完全マスター日本語
396デフォルトの名無しさん:2013/05/23(木) 11:14:37.70
2chをみているとレスの中に例えば「★初心者以前の質問に雪崩のように答えるスレ★」と青の文字でかかれていて
URLはどこにも書かれていないのに、その青い文字をクリックすると「★初心者以前の質問に雪崩のように答えるスレ★」にいけるようになっている場合があります。


どうすれば「ABC」青文字で書かれていてその文字をクリックすると「ABCのページ」に行けるようになるのでしょうか?

例で言えばhttp://desktop2ch.tv/utu/1367764194/の>>1 の「[test]書き込みテスト 専用スレッド596[テスト] 」のようにURLなしでそのサイトに行けるようにしたいのです。よろしくお願いします
397デフォルトの名無しさん:2013/05/23(木) 18:21:37.02
呼び出し元の関数のアドレスを、呼び出し先の関数で得る方法ってありませんか?
下記のコードではHuman関数のアドレスを、Dog関数に引数で渡しているのですが、
引数やグローバル変数などは使わずに得る方法です。

#include <stdio.h>

void Dog(void * p) {
 printf("Dog()  : p    :%p\n", p);
}
int Human() {
 printf("Human() : Human:%p\n", &Human);
 Dog(&Human);
 return 0;
}
int main(void) {
 Human();
 return 0;
}
/* 結果
Human() : Human :004013CB
Dog()   : p    :004013CB
*/
398デフォルトの名無しさん:2013/05/23(木) 18:38:16.02
>>397
#include <stdio.h>

void Dog(void *p);

int Human(void)
{
printf("Human() : Human : %p\n", &Human);
Dog(&Human);
return 0;
}

void Dog(void *p)
{
printf("Dog() : p : %p\n", p);
printf("Human() : p : %p\n", Human);
}

int main(void)
{
Human();
return 0;
}
399デフォルトの名無しさん:2013/05/23(木) 18:53:35.29
>>397
環境依存でいいならCPUのSPから呼び出しもとのアドレスを抽出できるけど、
それ自体は関数ポインタではないから関数ポインタを別途取得して比較しないといけない。
大人しく渡すしかないよ。
400デフォルトの名無しさん:2013/05/23(木) 18:53:47.85
           x≦系圭 \
          ,ィ升圭圭圭圭ハ ⌒ト、
            {圭圭圭圭圭圭.i}.圭圭\         ヽ i i l l l l l l l l l l l i /
           入圭圭圭圭圭ヌ圭圭圭ハ        二
        ,ィK圭>≠=-≦ 圭圭圭圭ハ       二
         i圭圭圭圭圭圭圭圭圭圭圭. い       二 
          |圭圭圭圭圭圭圭圭圭圭圭圭ハ         二 早く、日本に
          |圭圭圭圭圭圭圭ヲ⌒マ/圭「⌒!        二 
          {圭圭圭圭圭>!ヽ Y   マ圭し |        二
          X´_  _   r1┤ l ト.   マ/{ jメ.从\    二  帰りたい
          ∨ y ノ´ ! | | l| l | |          Nハ⌒´ 二 
           l / /l| | :| | ! j .| |        Y:|   .二.  
           l | | | |  ;     ト、     i  Z   二
         /| ! ! !.从         ヽ    !  .N   二
      / ∧.   N \       .    从  リ ∨ // ! ! ! l l l l l l l l l l ! ヽ
       | / ∧       |\          / ∧_ノ   ∨
       | / / ∧       |  \      }/  / /   l|
       | / / ∧      !  ̄ !    !_ //    j|
       | / / / }     .l   |    |_ /       .'
      |⌒ \ /    リ   |    | , '      /
      ∧   /     /     |    ∨ .      /         /
      / ∧ /     /|     !     ∨     /           /
401はちみつ餃子 ◆8X2XSCHEME :2013/05/23(木) 22:14:26.26
>>397
gcc なら __builtin_return_address 関数で呼出し元のアドレスが得られるので、
コンパイル時に -Map オプションでマップを吐かせておいたのと比較して呼出し元関数のアドレスを得ることが出来る可能性がある。
でも、強力に最適化させるとインライン化されたりして関数という単位が維持されない可能性もあるので、
ソースコード上で陽にポインタを受渡す方が期待する結果を得易いのは確か。
402397:2013/05/24(金) 01:50:53.39
>>398
やりたいことのイメージと少し違いますね・・・

>>399, >>401
大人しく渡すことにします。
ありがとうございました。
403デフォルトの名無しさん:2013/05/25(土) 03:03:19.38
変数のサイズが環境によって違う場合があるってのは
実行環境によって違う場合があるってこと?
コンパイル環境によって違う場合があるってこと?
環境はWindowsXP以降(32bit/64bit両方含む)限定でお願いします
404デフォルトの名無しさん:2013/05/25(土) 03:41:58.22
>ポインタを使ったほうが処理が速いの?

ソート処理などのとき、実体を入れ替えるより、ポインタを操作で実現する方が速いでしょうね。

>変数のサイズが環境によって違う場合があるってのは
>実行環境によって違う場合があるってこと?
>コンパイル環境によって違う場合があるってこと?

変数のサイズはコンパイラが決めます。
通常はターゲットとされるOSに合わせてコンパイラを選びます。

ただ、最近の64bitのWindowsなら、32bitコンパイラで作ったプログラムでも
動作します(古いWindows64bitだと無理だった気がします)。
405はちみつ餃子 ◆8X2XSCHEME :2013/05/25(土) 04:44:53.40
型のサイズはコンパイラによって決まるけど
実行環境に都合のいい妥当なサイズを選択するとなると、
そんなに選択肢は多くはないよな。

主要なコンパイラに追従するのもよくあることだし。
406デフォルトの名無しさん:2013/05/25(土) 05:37:14.88
> 動作します(古いWindows64bitだと無理だった気がします)。

これどの64bit Windowsのこと?
Itaniumはそもそもx86との互換性が怪しかったはずだけど。
XP64bit以降はドライバはともかくアプリの互換性はほぼ問題ない
レベルだったはず。
407デフォルトの名無しさん:2013/05/25(土) 06:16:54.24
64な今でもwinはint=int32_tに設定しているし、win64のapiってどうなってるの?
408はちみつ餃子 ◆8X2XSCHEME :2013/05/25(土) 09:43:04.99
>>407
それは LLP64 というモデルだね。
実際のところ広い (64ビット幅の) メモリ空間が欲しいことはあっても、
大きい数値 (64ビット幅の int) が必要ということはそれほどないという現実があるので。

プログラム中で使われる「数値」の内、
30ビット幅以下で表わせるものが95%を占めるという検証結果もある。
http://people.csail.mit.edu/jaffer/CNS/DIMPA

だから Win64 の API は int が 32 ビットで、ポインタが 64 ビットに拡張されたものってことだよ。
409407 ◆QZaw55cn4c :2013/05/25(土) 11:11:41.80
>>408
AMD64 rax と eax を同時に使える、というわけでもなさそうだし‥‥
とうか LLP は sizeof(int)==sizeof(long)というのが‥‥ by win32api なのがごっそりかわるのを避けるためっていう気が‥‥
でもバス幅を増やしても速度を稼げなくなっている時勢でもあるし‥‥
いろいろあるみたいだけれどもよくわからないですね

>Tests for zero should be placed as early as possible in each routine, since roughly 40% of calls will receive a zero argument
ここだけわかった他は珍文.漢文
410デフォルトの名無しさん:2013/05/25(土) 13:06:14.18
>>408
そりゃ小さい値の方が使用頻度は高いだろうけど、稀にでも大きな値を使うことが
あるのなら、そちらにあわせる必要があるだろうね
いちいち判定文を入れるとかやってられないし・・
411デフォルトの名無しさん:2013/05/25(土) 13:13:20.64
         |  ├──┤ |
         |  ├──┤ |
         |  ├──┤ |
         |  ├──┤ |
         |  ├──┤ |
         |  ├──┤ |
         |  ├──┤ |
         |  ├──‐/⌒`\
       ,∠-―.、─‐γ´       \
       (   l ̄))-/フ ,ノ/   \__
       ,>ー‐三、( ̄__,ノ |
       (   l  ))  ̄‐┤ ト
       >―‐.三、──┤ |
       (   .l  ))──┤ |
       `>ニ二、 ──┤ |
       (   l_))──┤ |___,/ ̄ ̄ ̄
        `ー-―'. ──┤ |
         |  ├──┤ |
         |  ├──┤ |
         |  ├──┤ |
         |  ├──┤ |
         |  ├──┤ |
         |  ├──┤ |
412デフォルトの名無しさん:2013/05/25(土) 15:36:44.53
>>411
なんじゃ?そりゃ。ゴワサンのスマッシュ暗算か?
413デフォルトの名無しさん:2013/05/26(日) 07:01:00.13
スタックだな
414ゲーム専門学校:2013/05/26(日) 11:25:06.55
int a[10];
a=
415ゲーム専門学校:2013/05/26(日) 11:25:37.86
a={1,2,3,4};ってやったらエラーがでるんですが何故でしょうか?教えてください
416デフォルトの名無しさん:2013/05/26(日) 11:32:06.58
脳が足りない
417407 ◆QZaw55cn4c :2013/05/26(日) 11:42:51.51
>>414-415
特に問題ないのですが
http://codepad.org/tIdfWbuC
418デフォルトの名無しさん:2013/05/26(日) 12:00:12.12
int a[10];
typedef struct{int a,b,c,d,e,f,g,h,i,j;}sng_t;
*(sng_t*)a=(sng_t){1,2,3,4};
419ゲーム専門学校:2013/05/26(日) 12:22:17.66
>>418
理解できません
structってなんですか?typedefってなんですか?
420デフォルトの名無しさん:2013/05/26(日) 13:12:20.40
>>414-415
int a[10]={1,2,3,4};

int a[10];
a={1,2,3,4};

この2つは構文の種類が違う
初期化子について詳しく書いてある入門書なりサイトなり見るとよい
421デフォルトの名無しさん:2013/05/26(日) 13:15:16.67
補足
前者は宣言+初期化
後者は宣言+代入
422デフォルトの名無しさん:2013/05/26(日) 13:18:19.72
>>421
int a[10];
a={1,2,3,4};

こんなこと、できました?
423デフォルトの名無しさん:2013/05/26(日) 13:18:59.99
初期化以外の代入で集合 { } が使えるのは C90から?
424デフォルトの名無しさん:2013/05/26(日) 13:24:16.59
日本語が変だったな
初期化以外で集合 { } が使えるのは C90から?

struct foo { int a, b, c; };
void func(struct foo d);
...
func( (struct foo){ 1, 2, 3 } );
struct foo c;
...
c = (struct foo){ 1, 2, 3 };

みたいなの
425ゲーム専門学校:2013/05/26(日) 14:32:40.76
よくわかりません
426デフォルトの名無しさん:2013/05/26(日) 15:15:03.69
>>424
C99やgccでも採用されてません。
どこかの独自のCでしょう。
427デフォルトの名無しさん:2013/05/26(日) 15:19:43.22
>>426
あら。 勘違いだったか。
ちょっと便利そうだけど俺の使ってる環境じゃ対応してないしなー と感想持った何かは別言語だったのだろう
428デフォルトの名無しさん:2013/05/26(日) 15:28:12.97
>>415のようなことをしたい場合は、
ループ作って、一つずつ代入しないといけなかったと思う。
429デフォルトの名無しさん:2013/05/26(日) 15:54:20.42
>>426
複合リテラル知らんの?
http://seclan.dll.jp/c99d/c99d07.htm#dt19991101
430デフォルトの名無しさん:2013/05/26(日) 16:00:39.60
そういう環境依存のガラパゴス仕様を教える専門学校いらんw
431デフォルトの名無しさん:2013/05/26(日) 16:02:07.12
432デフォルトの名無しさん:2013/05/26(日) 16:08:29.62
>>429
正しい情報ありがとう。
知りたい情報があるとき、それを否定する嘘情報を自信満々を装って
書き込みすると、誰かがソース付きで説明してくれるのでいつも助かってます。
433407 ◆QZaw55cn4c :2013/05/26(日) 16:15:05.87
>>429
複合リテラルは配列の代入に使えるのか?
http://ideone.com/cSxDei
関数の引数にはできるようだが
http://ideone.com/N3HTHV
434ゲーム専門学校:2013/05/26(日) 16:18:12.87
ううううううううううううあああああああわかりません
435 ◆QZaw55cn4c :2013/05/26(日) 16:35:45.86
>>434
>>429 のリンク先の用例でも関数の引数としての複合リテラルの使い方しか記述されていないでしょ?
436ゲーム専門学校:2013/05/26(日) 18:03:58.68
リテラルって何ですか?
437デフォルトの名無しさん:2013/05/26(日) 18:13:15.56
>>436
ここに書いたその文字列を、googleの検索窓に書いてみろ。
438デフォルトの名無しさん:2013/05/26(日) 18:16:33.68
>>414-415 に答えるだけなのにどこまですっ転がってるんだお前ら
439デフォルトの名無しさん:2013/05/26(日) 18:17:18.75
それが自己顕示欲だ
440ゲーム専門学校:2013/05/26(日) 18:21:14.31
>>437
知らないなら黙っていてください。
あなたがgoogleの検索窓に書けばいいんですよ。
441440:2013/05/26(日) 18:22:22.10
名前は間違いです。ゲーム専門学校ではありません。
前になりすまそうとしてた時のものが残ったままでした。
すいません。
442ゲーム専門大学生:2013/05/26(日) 18:39:12.83
以後気をつけましょう
443デフォルトの名無しさん:2013/05/26(日) 18:45:51.84
自演がばれた瞬間
444440:2013/05/26(日) 19:19:12.12
わたしは自演のウンコ、ゲーム専門学校です
445ゲーム専門学校:2013/05/26(日) 19:35:20.80
>>441はなりすましです・・・
446ゲーム専門学校 ◆LFvWITXwdE :2013/05/26(日) 19:36:41.44
>>437
リテラルと検索してもよくわかりません
447デフォルトの名無しさん:2013/05/26(日) 21:00:14.43
入門書はこれ書いて欲しい。書いてない本大杉。

宣言時に使うポインタ演算子「*」と間接参照演算子「*」とは完全に別モノだと捉えよう!

C言語のポインタがゼッタイにわかる本 最初からそう教えてくれればいいのに! 120ページより
448デフォルトの名無しさん:2013/05/26(日) 21:05:26.23
>>447
よーく思い出すと、一番最初にそれに躓いた覚え俺にもあるわw
「ひとまずカンケーないんだ」と感付いてから開けたわw
449デフォルトの名無しさん:2013/05/26(日) 21:08:28.92
関係有るだろアホかお前ら?
450デフォルトの名無しさん:2013/05/26(日) 21:20:56.81
全くの別物だぞ
関係はない

char *p; とか書いてるアホは関係あるように錯覚してるのかもしれないが
451デフォルトの名無しさん:2013/05/26(日) 21:42:55.23
全く別物だけど、関係が全く無いわけじゃない
452デフォルトの名無しさん:2013/05/26(日) 22:05:36.68
なら
char* a,b,c;
って宣言させろや
453デフォルトの名無しさん:2013/05/26(日) 22:10:59.97
char *p;と書く奴はアホ扱いできても、char *p, *q;と書いてる奴には何も言えないはずだ
454デフォルトの名無しさん:2013/05/26(日) 22:16:42.52
typedef char *charPtr;

charPtr a, b, c; と書けばいいですがな
455デフォルトの名無しさん:2013/05/26(日) 22:21:36.50
ポインタ演算子の「*」は、「*」をつけることでポインタとなる。
間接参照演算子の「*」は、「*」をつけることで、ポインタから変数そのものになる。
456デフォルトの名無しさん:2013/05/26(日) 22:27:35.87
ポインタはアドレスを格納している変数
457ゲーム専門学校:2013/05/26(日) 22:33:14.48
ポインタってなんなんでしょうか?
アドレスを格納するってあるんですが
アドレスってなんですか?
458ゲーム専門学校:2013/05/26(日) 22:34:24.07
アドレスっていうのがわかりません
アドレスは番号なんですが
どうやってみるんでしょうか?
中身をみるやりかたしってますか?
459デフォルトの名無しさん:2013/05/26(日) 22:34:48.77
素朴なぎもんですが、ポインタ演算子なんて言葉あるの?
460デフォルトの名無しさん:2013/05/26(日) 22:34:56.35
だめだこりゃ
461デフォルトの名無しさん:2013/05/26(日) 22:40:36.24
>>459
無い
462デフォルトの名無しさん:2013/05/26(日) 22:41:03.57
ポインタをなんとなく使ってきた人って多いんだな
463デフォルトの名無しさん:2013/05/26(日) 22:43:09.62
あるでしょ。
構造体の〜って感じで枕詞が付くかもしれないけど。
>>455 はちょっと違う気がする。。。
464デフォルトの名無しさん:2013/05/26(日) 22:46:48.12
int *p;

pはアドレスを格納する変数で、*pとすることでそのアドレスに格納されている値にアクセスできますよ、ということ
465デフォルトの名無しさん:2013/05/26(日) 22:47:19.21
お前ら違う気がするとか違うと言うなら、正しいケースも書いてくれ。
466デフォルトの名無しさん:2013/05/26(日) 23:34:33.64
>>453
char* p;
char* q;
と書けよ
467デフォルトの名無しさん:2013/05/26(日) 23:38:22.28
>>466
自分のコードならそうしておけば問題ないが
それに慣れ過ぎちゃうと、他人のコードが罠になる気がする
468デフォルトの名無しさん:2013/05/26(日) 23:47:37.67
自分で char *p, *q; と書かないだけで
重々理解はしてるから問題ない
469デフォルトの名無しさん:2013/05/27(月) 00:00:26.02
>>466
お断りします
470ゲーム専門学校:2013/05/27(月) 00:02:51.84
アドレスっていうのがわかりません
アドレスは番号なんですが
どうやってみるんでしょうか?
中身をみるやりかたしってますか?
471デフォルトの名無しさん:2013/05/27(月) 00:05:55.02
無能ゲーム専門
だめだこりゃお
472デフォルトの名無しさん:2013/05/27(月) 00:14:54.98
入門書に書いてあんだろ
入門書読めよ
473デフォルトの名無しさん:2013/05/27(月) 00:54:29.48
>>470
int i=0; printf("%p",&i);
474デフォルトの名無しさん:2013/05/27(月) 01:45:09.94
正確には void* にキャストしないといけなかったような
475デフォルトの名無しさん:2013/05/27(月) 02:04:57.23
gcc4 はそういって怒る
476デフォルトの名無しさん:2013/05/27(月) 04:03:17.76
そういやsizeof(void *)とsizeof(int *)が = とは限らないというのは
なんでだったっけ?
477デフォルトの名無しさん:2013/05/27(月) 07:13:58.00
そういう環境があるからとしか
478デフォルトの名無しさん:2013/05/27(月) 07:18:30.32
型ごとにアドレス空間が違う実装があるってこと?
void *はその最大を扱うと。
479はちみつ餃子 ◆8X2XSCHEME :2013/05/27(月) 07:29:19.71
特定のアラインでのメモリアクセスしか出来ないアーキテクチャがある。
4バイトサイズのデータの読み出しには4で割り切れるアドレスからしか読み出せないとかいったような。
そういうアーキテクチャでは2バイトのデータの後に4バイトのデータを配置すると2バイトの詰め物を置くことになって無駄じゃん。
型ごとに違う領域に配置するのが合理的な場合は有り得ると思う。

知らんけど。
480 ◆QZaw55cn4c :2013/05/27(月) 07:42:46.03
>>476
sizeof(void *) ではなく sizeof(void (*)()) ということであれば、これと sizeof(int *) が違う環境なら現存していてしかも実は私達(の一部)にとってもおなじみだったんです。
481デフォルトの名無しさん:2013/05/27(月) 13:04:24.71
プログラミングに関してもっとアットホームなコミュニティーがあってもいいと思うし誰かWeb出来る人つくってよ
482はちみつ餃子 ◆8X2XSCHEME :2013/05/27(月) 16:02:28.96
>>481
Google Plus でも使えば?
483デフォルトの名無しさん:2013/05/27(月) 18:39:02.12
ある関数で
int *a,*b;
int* res[2];
a=(int*)malloc(SIZE);
b=(int*)malloc(SIZE);
適当な処理
res[0]=a;
res[1]=b;
return res;
ってあって呼び出し元がres[0]res[1]を参照したときそれは絶対にa,bアドレスですか?
ポインタは破棄されるタイミングがよくわからないので
484デフォルトの名無しさん:2013/05/27(月) 19:36:29.26
それ、破棄されてないよ。いわゆるひとつのメモリーリーク。
485デフォルトの名無しさん:2013/05/27(月) 20:00:02.89
スマポが使えないからCのmalloc()は怖いな
486デフォルトの名無しさん:2013/05/27(月) 20:03:49.06
むしろローカル変数への参照を 呼び出し元へ返してる疑惑
487デフォルトの名無しさん:2013/05/27(月) 20:08:52.69
その関数は int ** func(); なのだろうか
488デフォルトの名無しさん:2013/05/27(月) 20:12:43.58
>>480
関数ポインタはvoid*につっこめねえから関係ねえ
489デフォルトの名無しさん:2013/05/27(月) 21:29:21.01
>>484
必要無くなったら解放します
>>486
ダメなんですか?
>>487
はい
490デフォルトの名無しさん:2013/05/27(月) 21:36:34.85
引数にint* res[2]のポインタを渡して入れてもらった方がいいんじゃね?
void func(int **res[2])
491デフォルトの名無しさん:2013/05/27(月) 21:44:31.45
>>489
a,bは無効になるが、a,bに格納されているmallocで確保したアドレスは
freeするまで有効。その意味ではres[0], res[1]の値は呼び元でも有効だが、
そのコードの問題はresはその関数を抜けると無効になってしまう
だから結局はダメ、というか保障はない
492デフォルトの名無しさん:2013/05/27(月) 21:51:31.01
>>491
なるほど、だったらstaticにしたりでも対策できそうですね
>>490
このやり方でやってみようと思います
493デフォルトの名無しさん:2013/05/27(月) 21:57:40.63
そういやC言語をやり始めた頃は俺もこういうパズルみたいなプログラムを
わざと書いて楽しんでたな

今じゃC++でshared_ptrもしくはptr_vector
おっとスレ違いだ
494デフォルトの名無しさん:2013/05/27(月) 22:10:52.25
495ゲーム専門学校:2013/05/28(火) 12:04:01.46
C++とCの違いはなんですか?
496デフォルトの名無しさん:2013/05/28(火) 12:59:19.08
497ゲーム専門学校:2013/05/28(火) 13:55:44.03
英語読めません
日本で教えて下さい
498デフォルトの名無しさん:2013/05/28(火) 13:59:05.29
プログラミングを本格的にやるなら、英語くらい読めたほうがいいんじゃないの?
499デフォルトの名無しさん:2013/05/28(火) 18:27:19.01
質問なんですが、

struct A{
struct B sikaku;
};

struct B{
struct A *batu;
};

struct C{
struct C *maru;
struct B *sankaku;
};

このような感じで、それぞれの構造体を入れ子にすることは出来ないのですか?
500デフォルトの名無しさん:2013/05/28(火) 18:33:21.45
>>499
struct Bの宣言を先にすれ。
501デフォルトの名無しさん:2013/05/28(火) 18:38:31.33
struct A{
struct B sikaku;
};

struct B{
struct A batu;
};

こうですか?
502デフォルトの名無しさん:2013/05/28(火) 18:41:22.57
構造体の本体を持ち合うのは無理
構造体のポインタを持ち合うのは可能

struct B {
 struct A *batu;
};

struct A {
 struct B *batu;
};
503499:2013/05/28(火) 18:53:57.81
構造体のポインタをメンバとして持つ場合は、その構造体が先に宣言されていなくても使えるのでしょうか?、
そこらへんが、調べても出てきませんでした
504デフォルトの名無しさん:2013/05/28(火) 19:03:20.03
この構造体はこういうメンバを持っています っていう定義が無くても良いよ

線形リストなんかも ほぼそれな書式でしょ?

struct A {
 struct A * next;  /* ←ここを解釈する段階では struct A の定義が全て終わってるわけじゃない */
 int val;
};


なんか知らんけど構造体のポインタを保持するための器を用意できればいいんだ ってわけ
505デフォルトの名無しさん:2013/05/28(火) 19:37:53.59
struct A;
struct B;
506デフォルトの名無しさん:2013/05/28(火) 19:38:26.59
サイズがわかればいいんですね。
じゃあ

sizeof(strct B) = 100;
struct A{
struct B sikaku;
};

はオッケーですよね。
507ゲーム専門学校:2013/05/28(火) 19:45:20.79
ううううううううううううううううううううううううううううううううううううううううううううううううううううあああああああああああああああああああああああああああああああああ
508デフォルトの名無しさん:2013/05/28(火) 20:37:46.13
>>506
こうすればいい。

struct A;
struct B;

struct A {
  struct B* pb;
};

struct B {
  struct A* pa;
};
509デフォルトの名無しさん:2013/05/28(火) 21:20:02.74
ポインタはサイズが4バイトで単にアドレスを格納するだけの馬鹿だからな
510デフォルトの名無しさん:2013/05/28(火) 21:37:45.84
ILP32環境ならYes
511デフォルトの名無しさん:2013/05/28(火) 23:28:01.36
ttp://avjavjav.com

俺のポインタの認識。
宣言文中で変数名の前に*を付けたらポインタ宣言完了。
本文で使用するポインタ演算子は*(逆参照演算子)と&(アドレス演算子)。
例えば、以下の変数とポインタを定義する。
int num;
int *num_ptr;

numはただのオブジェクト。変数。こいつにポインタ演算子である&をつけると、
オブジェクトのアドレスを返すようになる。
num_ptrはポインタなので、アドレスを指せる。指せるだけである。AVを見ているだけ状態。
AV女優本人と本番はできない。指すだけではなく、操作をするのであれば、逆参照をつけて、
*num_ptrとすればポインタが指しているオブジェクトを操作することができる。
宣言文中で*をつけるとポインタ化し、本文中で*をつけると逆参照してオブジェクトをいじれる。
512デフォルトの名無しさん:2013/05/28(火) 23:46:09.36
(*hogeptr).hogehoge
hogeptr->hogehoge
513デフォルトの名無しさん:2013/05/29(水) 01:14:02.59
ポインタは足し算引き算できるのも強みだよ(void*を除く)
514デフォルトの名無しさん:2013/05/29(水) 07:07:30.57
ダブルポインタの場合の認識は
515デフォルトの名無しさん:2013/05/29(水) 09:47:40.70
AVで示すとかどんだけガラパゴスでわかりづらいんだよ
俺だったらNARUTOだな
516デフォルトの名無しさん:2013/05/29(水) 19:44:31.49
int a[] = {0, 1};

これは許されるのに
const int ipa = (int)&a[0];

これはダメなんだなあ
const short spa = (short)&a[0];

どうにかshortにできないもんか
517デフォルトの名無しさん:2013/05/29(水) 19:47:44.92
ポインタを整数化するのに short ?
518デフォルトの名無しさん:2013/05/29(水) 19:49:41.22
ポインタは32ビットのアドレスを格納する変数
shortは16ビットの変数
519デフォルトの名無しさん:2013/05/29(水) 20:00:05.93
>>518
なんでやねん
520デフォルトの名無しさん:2013/05/29(水) 20:00:26.33
>>483
あたりからずっとレベルが低空飛行してるが大丈夫か?
ここ子供ばっかか? オッサンはおらんのか?
521デフォルトの名無しさん:2013/05/29(水) 20:03:47.79
>>516
何が死体のかり回できん
522デフォルトの名無しさん:2013/05/29(水) 20:08:13.51
>>518
なんでポインタが32bitなんだよ無恥。
523デフォルトの名無しさん:2013/05/29(水) 20:11:22.37
16bitだよな!
524デフォルトの名無しさん:2013/05/29(水) 20:14:23.24
ポインタはILP32環境なら32bitだけど環境によってサイズは変わる。
525デフォルトの名無しさん:2013/05/29(水) 20:35:25.44
>>521
aのポインタの下位2バイトでconst shortを初期化したい
526デフォルトの名無しさん:2013/05/29(水) 20:44:01.09
int a[] = {0, 1};
static const void*center=&a[0];
const short spa = (signed)center-(signed)&a[0];
527デフォルトの名無しさん:2013/05/29(水) 21:00:49.33
コンパイラは(int)&a[0];はconstだけど(short)&a[0];はconstじゃないって言ってる
サイズ変わるキャストは演算なんだろうか
gccとMSのしか試してないが
528デフォルトの名無しさん:2013/05/29(水) 21:10:54.33
>>525
intptr_t にキャストしてから short にキャストしる
529デフォルトの名無しさん:2013/05/29(水) 21:17:34.52
環境によるけど32bit環境ならshortにキャストしたら元の値が
失われる。
530デフォルトの名無しさん:2013/05/29(水) 21:36:01.51
>>528
intptr_tだろうがintだろうがキャストじゃダメみたい
531デフォルトの名無しさん:2013/05/29(水) 21:42:22.50
shortとconst shortは違う型だし。
532デフォルトの名無しさん:2013/05/29(水) 21:49:08.40
だめじゃないだろう
何を言ってるのか
533デフォルトの名無しさん:2013/05/29(水) 22:04:22.25
ゲー専ってまだいたのか
534デフォルトの名無しさん:2013/05/29(水) 22:25:50.57
ゲーム専門(笑)
535ゲーム専門学校:2013/05/30(木) 00:53:14.63
uintってなんですか?
そんな型調べてもでてこないんですがなんなんでしょうか?
536デフォルトの名無しさん:2013/05/30(木) 01:06:49.30
お前がうんこだから
537デフォルトの名無しさん:2013/05/30(木) 01:43:44.62
>>535
unsigned intの略称で使われてることが多い
大抵どっかでtypedefしてある
538デフォルトの名無しさん:2013/05/30(木) 07:35:52.87
ゲー専はちったあググるということを覚えろよ
539デフォルトの名無しさん:2013/05/30(木) 15:34:52.14
ゲー専はトリップ付けろ
540ゲーム専門学校 ◆4fXnZOxmfi.e :2013/05/30(木) 15:39:35.46
ありがとうございました。
541ゲーム専門学校 ◆6dgtU8dLHTGf :2013/05/30(木) 15:52:45.08
ググるってどういうことですか?
542ゲーム専門学校 ◆9Ce54OonTI :2013/05/30(木) 15:59:43.12
うんこー
543ゲーム専門学校 ◆qTnI7UzLV. :2013/05/30(木) 16:05:17.97
さて誰が本物でしょう?
544ゲーム専門学校:2013/05/30(木) 16:12:53.35
なりすましはやめてください!
545デフォルトの名無しさん:2013/05/30(木) 16:23:55.82
ゲー専
デブ専
ブス専
546デフォルトの名無しさん:2013/05/30(木) 16:27:09.62
自己顕示欲 ボソッ
547ゲーム専門学校◇9Ce54OonTI:2013/05/30(木) 16:32:57.57
なりすまし超ウザいんだけど
一度死んでくれない?
548デフォルトの名無しさん:2013/05/30(木) 16:33:48.20
これはひどい
549デフォルトの名無しさん:2013/05/30(木) 16:49:51.59
>>540-543
ゲー専はスタンドアローンコンプだと思ってたんだよ。
550ゲーム専門学校:2013/05/30(木) 16:56:51.96
ううううううううううううううううううううううううううううううううううううううううううううううううううううあああああああああああああああああああああああああああああああああ
551デフォルトの名無しさん:2013/05/30(木) 17:03:45.04
ゲーセンがかわいそう
いじめないであげて
552ゲームセンター:2013/05/30(木) 17:16:26.25
あなたの願い事は何ですか?
553デフォルトの名無しさん:2013/05/30(木) 19:40:11.64
竜宮城へ行って楽しく暮らすことです
554デフォルトの名無しさん:2013/05/30(木) 19:59:10.96
人類が滅びる事です
そしてその時は近いでしょう
555デフォルトの名無しさん:2013/05/30(木) 21:24:43.06
てす
556デフォルトの名無しさん:2013/05/31(金) 00:33:00.39
C言語マスターってマスターの基準ってどのくらい?
557デフォルトの名無しさん:2013/05/31(金) 00:33:55.41
規格票が諳んじれるくらい
558デフォルトの名無しさん:2013/05/31(金) 02:50:42.35
マスターがスマタに見えた。
そういうことよくあるよね。
559デフォルトの名無しさん:2013/05/31(金) 05:31:19.43
規格諳んじたって実装できなきゃマスターでも何でもない
560デフォルトの名無しさん:2013/05/31(金) 06:41:35.06
自己参照型構造体を使ったリストの操作関数を一通り何も見ずにすらすら実装できるレベル
561デフォルトの名無しさん:2013/05/31(金) 06:48:56.80
それは社内研修終わった新人レベルだろ
562デフォルトの名無しさん:2013/05/31(金) 07:19:50.55
どんなマイナーな仕様もすぐに出てくるレベル
563デフォルトの名無しさん:2013/05/31(金) 07:21:11.40
剥げてる事
564デフォルトの名無しさん:2013/05/31(金) 09:32:32.10
>自己参照型構造体を使った…
一瞬ナニソレと思ったが、連結リストか
研修前にそれくらい出来てて欲しいような…
565デフォルトの名無しさん:2013/05/31(金) 10:51:11.27
>>560
双方向リストとか紙に矢印とか書きながらじゃないと実装できないわ。
566デフォルトの名無しさん:2013/05/31(金) 10:58:44.07
ゲー専は無能だからな
567デフォルトの名無しさん:2013/05/31(金) 12:10:17.32
http://japanese.joelonsoftware.com/Articles/Interviewing.html

例えば君が単リストを反転させる問題を出したとき、良い候補者は
用紙の端にノードと矢印を走り書きして、何がどこにつながっている
かを書き込んでゆくことだろう。
むしろそれは必須である。
人間でいる限り、幾つかの箱とその間の矢印を書かずして単リスト
を反転させることは不可能なのだ。
悪いプログラマはいきなりコードを書き始める。
568デフォルトの名無しさん:2013/05/31(金) 12:35:26.84
一方ノイマンは頭の中のホワイトボードに書き込んだ
569デフォルトの名無しさん:2013/05/31(金) 12:49:21.82
お前らはノイマンじゃない
570デフォルトの名無しさん:2013/05/31(金) 15:22:09.13
ゲー専はいらない
よくゲー専なんかに金と時間使おうと思うよな
行こうと思う本人も本人だけど学費出す親も親
キチガイ一家
571デフォルトの名無しさん:2013/05/31(金) 15:22:32.23
チューリングなら磁気テープを使う
572デフォルトの名無しさん:2013/06/01(土) 00:47:35.00
xy平面状に2つの円があって、2つの円の中心の座標と半径は分かっています。
この場合に、2つの円の2つの共通接線の接点の4点の座標を求めたいのですが、どうしたらいいですか。
指針だけでも教えていただけませんでしょうか困ってます。
573デフォルトの名無しさん:2013/06/01(土) 00:48:33.87
>>572
高校数学の本を読めばおk
574デフォルトの名無しさん:2013/06/01(土) 00:49:12.58
あ、この場合の接線は2円の間でクロスする場合は除きます。
575デフォルトの名無しさん:2013/06/01(土) 00:50:02.99
>>573
そこをなんとか。私はもう寝ますんでよろしくお願いします。
576デフォルトの名無しさん:2013/06/01(土) 01:38:10.94
>>575
指針出せって言うから出してんじゃん
高校数学の教科書読めば解決するって分かってるのに何で読まないの?
高校生じゃなくても教科書相当の参考書なら買えるよね?
近所に本屋なくてもアマゾンで買えるよね?
577デフォルトの名無しさん:2013/06/01(土) 01:46:08.07
www.phoenix-c.or.jp/~tokioka/2circle/2circle.html
578デフォルトの名無しさん:2013/06/01(土) 01:47:26.18
http://www.phoenix-c.or.jp/~tokioka/2circle/2circle.html
スマホのブラウザだとURLコピーミスがあるから辛い
579デフォルトの名無しさん:2013/06/01(土) 03:04:03.96
辛いなら貼らなくていいよ
何その辛いアピール
「辛いのに貼ってるぼく頑張ってるでしょ」って?
580デフォルトの名無しさん:2013/06/01(土) 04:24:46.26
自己顕示欲を満たすほうが優先なんだろ。
581デフォルトの名無しさん:2013/06/01(土) 07:41:57.78
ここって、プログラム板のC言語に関してのページだったよね?
ま、いいや
上のレスのスマホのブレウザがどーのこーの言ってるけど
スマフォ用のブラウザも色々あるが
そいつらが、htmlの奪い合いしまくってんっだよ
プログラム板なんだから、そーいう情報もあたまにいれとけっつーの
582デフォルトの名無しさん:2013/06/01(土) 08:05:04.56
まだできてねえのかw役に立たねえ2chのクズ共がw
ちなみに2円の半径は同じ場合だけを考慮したらいいです。
どうぞよろしくお願い致します。
583デフォルトの名無しさん:2013/06/01(土) 08:44:47.95
馬鹿には教えても無駄
584デフォルトの名無しさん:2013/06/01(土) 08:50:43.49
585片山博文MZパンク ◆0lBZNi.Q7evd :2013/06/01(土) 09:41:27.70
直角三角形
相似
辺の比
586デフォルトの名無しさん:2013/06/01(土) 09:55:45.17
馬鹿無能高卒ニート、ゲーム専門じゃ無理
587デフォルトの名無しさん:2013/06/01(土) 10:16:27.96
>>582
一言だけでの突っ込みを入れると
「おまえは、メイド喫茶のツンデレか!!」
一行目にはクズ共がってツンツンして
最後にどうぞよろしくお願い致します。
って最後にデレっとしやがって。
それともビリーミリガンの良い方のビリーミリガンと悪い方のビリーミリガン
が、秒単位でいれかわってんのか!!

ま、どっちにしても、宿題ページで質問するのがベストなんじゃない?
問題文を自分なりに書いて。

あと、最近2chあんま見る事すくなってきたんだけどゲー専っていったいどういう意味なん?
だれか教えて
588デフォルトの名無しさん:2013/06/01(土) 12:05:03.33
> あと、最近2chあんま見る事すくなってきたんだけどゲー専っていったいどういう意味なん?
> だれか教えて
それをこの場で説明するのは非常に難しい
専門学校へ行って教わるのが吉
589587:2013/06/01(土) 12:09:25.01
>>588
何の専門学校へ行けゆーねん。
よけーにわからへんわ!!
590デフォルトの名無しさん:2013/06/01(土) 15:02:28.44
ゲイ専門の略
ゲームセンターの略
591デフォルトの名無しさん:2013/06/01(土) 18:23:53.56
>>589
とりあえずお前は
芸人専門学校に池
592デフォルトの名無しさん:2013/06/01(土) 18:26:57.93
ゲー専=ゲーム専門学校、ゲーム専門学校生の略

大概の奴はやる気が無く他力本願でレベルも低い、らしい
593デフォルトの名無しさん:2013/06/01(土) 18:31:39.30
>>592
C言語マスターしたとわめいてるわりにアセンブラもわからずしょっぼいゲームをUnity本見ながら作って喜んでる無能ゆとり連中
4gamer記事を鵜呑みにして脳味噌洗脳されてる哀れなゴミカモ
「プログラマ最強説、インディーズゲーム最強説」を唱えるやつがいたらほぼゲーム専門

大手ゲーム会社が作るビッグタイトルには金や技術力で勝てない
ではどうするかインディーズを持ち上げることで
自分たちの同人(インディーズ)の評価をあげ売り上げを伸ばそうと必死
594デフォルトの名無しさん:2013/06/01(土) 18:33:06.93
売り上げ=ソーシャル以下
ゲームの技術力+面白さ=ビッグタイトル以下

ましてテラリア、マインクラフトレベルでもないクソゲーで何がインディーズゲームとかいっちゃってんだろうなw

ハーーーーーーーーWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
595 ◆QZaw55cn4c :2013/06/01(土) 19:30:20.61
でもテトリスは面白いとおもうの
596デフォルトの名無しさん:2013/06/01(土) 19:56:51.48
QZさんって有償モリタポでどのくらい儲けてるの?
課題とかやってあげてるんでしょ?
597デフォルトの名無しさん:2013/06/01(土) 22:18:57.72
http://ja.wikibooks.org/wiki/C%E8%A8%80%E8%AA%9E
このサイトってどうよ?
598デフォルトの名無しさん:2013/06/02(日) 14:37:40.28
>>597
にんにく的体臭がほしい‥‥ええ、「はじめてのC」くらいのしゃれっ気があってもいいと思うのですK&Rは窓から放り投げて俺のいうことをきけ、みたいな
599デフォルトの名無しさん:2013/06/03(月) 06:32:34.87
二次元配列にポインタを使ってアクセスしたいのですが、書き方がよく分かりません。
http://ideone.com/jtcr7t

上記のコードで、c の場合はコンパイルできるのですが、bとdの場合がコンパイルできません。
cは期待した動作をするのですが、bとdとの違いが分かりません。
int a[N][2] と int *b[2] と int (*c)[2] と int *(d[2]) のそれぞれの違いを誰か解説して下さい・・・
600デフォルトの名無しさん:2013/06/03(月) 10:48:26.18
>>599
bはやるんなら b[2]じゃなくてb[N]じゃないかと。
601デフォルトの名無しさん:2013/06/03(月) 10:51:02.52
ポインタの理解のために美しき策謀読んでるんだけど、これって読むだけでもポインタの理解には十分?それともgdbとかアセンブリ言語の部分のサンプルも実際に自分でやってみた方がいい?
602デフォルトの名無しさん:2013/06/03(月) 10:53:58.16
通信教育の空手?
603デフォルトの名無しさん:2013/06/03(月) 10:56:21.36
美しき策謀はC言語理解しないと読めないだろ
ましてポインタすら理解してない無能が読んでも理解できない
604デフォルトの名無しさん:2013/06/03(月) 11:12:46.57
>>603
C言語はある程度わかる
ただ大学でやるポインタの演習がしっくりこないからどうかな、っていう
ポインタはアドレスってことと参照渡しと値渡しの違いくらいしかわからん

素直にポインタ解説本読んどいたほうがいい?
605デフォルトの名無しさん:2013/06/03(月) 11:15:55.14
>>604
ちょwww
ポインタがしっくりこないとか言ってる状態で「C言語はある程度わかる」とか言っちゃえる自信はどっからくるんだよ。
それはさっぱり分かってないと言うのじゃ
606デフォルトの名無しさん:2013/06/03(月) 11:17:03.36
>>229
そう言えば、これ解ける?
--
0 0 5 3 0 0 0 0 0
8 0 0 0 0 0 0 2 0
0 7 0 0 1 0 5 0 0

4 0 0 0 0 5 3 0 0
0 1 0 0 7 0 0 0 6
0 0 3 2 0 0 0 8 0

0 6 0 5 0 0 0 0 9
0 0 4 0 0 0 0 3 0
0 0 0 0 0 9 7 0 0
607デフォルトの名無しさん:2013/06/03(月) 11:40:01.69
>>605
いやだから本当に入門者の「ある程度」なんだって
謙遜の「ある程度」じゃなくて
ifとかforとか自作関数の定義くらいまでで
入門者用のスレだから聞いたのに...
608デフォルトの名無しさん:2013/06/03(月) 11:45:36.35
>>607
気にすんなし。こんなスレで入門者を叩きたいような奴が、
どんなレベルの奴かは、まぁ分かってやってくれ。

ポインタなんて宣言がややこしいくらいのもんだから、
大げさに言う奴がいても無視して事務的に覚えたらいい。
609デフォルトの名無しさん:2013/06/03(月) 12:19:37.15
>>605
そうしたほうがいい
でも余計混乱しないようにしろよ
610デフォルトの名無しさん:2013/06/03(月) 12:27:10.57
> ポインタの理解のために美しき策謀読んでるんだけど、これって読むだけでもポインタの理解には十分?
> gdbとかアセンブリ言語の部分のサンプルも実際に自分で
レベルに全く合ってない。やめとけ

ポインタ難しいのはC言語のチャチな機能を補うための工夫や
裏技を使うための抜け穴として使われるから

わかってない奴が >>608 みたいなことを言っても信じてはダメだ
611デフォルトの名無しさん:2013/06/03(月) 12:34:11.45
書式的ややこしさ(配列や const、関数ポインタ と複合すると)
機能的、概念的ややこしさ

両方兼ね備えてるからな
612デフォルトの名無しさん:2013/06/03(月) 12:41:32.62
自称プロは大げさに言って脅かすもんだよ。
そうやって自分のポジションを守ってるんだよ。
613片山博文MZパンク ◆0lBZNi.Q7evd :2013/06/03(月) 12:47:09.80
>>606 解けたよ。
┏━┯━┯━┳━┯━┯━┳━┯━┯━┓
┃1│4│5┃3│2│7┃6│9│8┃
┠─┼─┼─╂─┼─┼─╂─┼─┼─┨
┃8│3│9┃6│5│4┃1│2│7┃
┠─┼─┼─╂─┼─┼─╂─┼─┼─┨
┃6│7│2┃9│1│8┃5│4│3┃
┣━┿━┿━╋━┿━┿━╋━┿━┿━┫
┃4│9│6┃1│8│5┃3│7│2┃
┠─┼─┼─╂─┼─┼─╂─┼─┼─┨
┃2│1│8┃4│7│3┃9│5│6┃
┠─┼─┼─╂─┼─┼─╂─┼─┼─┨
┃7│5│3┃2│9│6┃4│8│1┃
┣━┿━┿━╋━┿━┿━╋━┿━┿━┫
┃3│6│7┃5│4│2┃8│1│9┃
┠─┼─┼─╂─┼─┼─╂─┼─┼─┨
┃9│8│4┃7│6│1┃2│3│5┃
┠─┼─┼─╂─┼─┼─╂─┼─┼─┨
┃5│2│1┃8│3│9┃7│6│4┃
┗━┷━┷━┻━┷━┷━┻━┷━┷━┛
614片山博文MZパンク ◆0lBZNi.Q7evd :2013/06/03(月) 12:57:02.36
こりゃいかんな。2ちゃんねる貼り付け機能もつけるべきか。。。
615はちみつ餃子 ◆8X2XSCHEME :2013/06/03(月) 13:16:19.88
使うのは一桁の数値だけやし、
9×9は固定なんだから罫線はいらんやろ。
こういう表示で充分や。

145327698
839654127
672918543
496185372
218473956
753296481
367542819
984761235
521839764
616デフォルトの名無しさん:2013/06/03(月) 13:18:39.27
┏━┯━┯━┳━┯━┯━┳━┯━┯━┓
┃ 1│ 4│ 5┃ 3│ 2│ 7┃ 6│ 9│ 8┃
┠─┼─┼─╂─┼─┼─╂─┼─┼─┨
┃ 8│ 3│ 9┃ 6│ 5│ 4┃ 1│ 2│ 7┃
┠─┼─┼─╂─┼─┼─╂─┼─┼─┨
┃ 6│ 7│ 2┃ 9│ 1│ 8┃ 5│ 4│ 3┃
┣━┿━┿━╋━┿━┿━╋━┿━┿━┫
┃ 4│ 9│ 6┃ 1│ 8│ 5┃ 3│ 7│ 2┃
┠─┼─┼─╂─┼─┼─╂─┼─┼─┨
┃ 2│ 1│ 8┃ 4│ 7│ 3┃ 9│ 5│ 6┃
┠─┼─┼─╂─┼─┼─╂─┼─┼─┨
┃ 7│ 5│ 3┃ 2│ 9│ 6┃ 4│ 8│ 1┃
┣━┿━┿━╋━┿━┿━╋━┿━┿━┫
┃ 3│ 6│ 7┃ 5│ 4│ 2┃ 8│ 1│ 9┃
┠─┼─┼─╂─┼─┼─╂─┼─┼─┨
┃ 9│ 8│ 4┃ 7│ 6│ 1┃ 2│ 3│ 5┃
┠─┼─┼─╂─┼─┼─╂─┼─┼─┨
┃ 5│ 2│ 1┃ 8│ 3│ 9┃ 7│ 6│ 4┃
┗━┷━┷━┻━┷━┷━┻━┷━┷━┛
617デフォルトの名無しさん:2013/06/03(月) 14:13:59.51
解けたということは、バックトラックかw
ソルバーじゃ解けないんだよなぁ。
618デフォルトの名無しさん:2013/06/03(月) 14:27:28.25
覚えた言葉を使いたがるのは分かるけど支離滅裂だなwww
619デフォルトの名無しさん:2013/06/03(月) 16:11:19.66
ソルバーなんか近似曲線引くときくらいしか使わないよ
620デフォルトの名無しさん:2013/06/03(月) 17:10:59.76
>>600
レスありがとうございます。b[N]にした場合、
int a[N][2]; int *b[N];
b = a; がコンパイルエラーになるのは、aが二次元配列で、bがポインタ(int *)の配列(要素数N) だからでしょうか?
int (*c)[2];
c = a; がコンパイルエラーにならないのはなぜですか?
そもそも、int (*c)[2]の意味が分かりません・・・
あと、int *b[2] と int *(d[2]) は同じなんでしょうか?それとも違う?

質問ばかりですいません・・・ この辺の事を易しく解説しているサイトとかあれば教えて下さい。
621デフォルトの名無しさん:2013/06/03(月) 17:32:22.52
struct { int *a; } b[2];  "ポインタが要素"の配列
struct { int a[2]; } *c;  "配列が要素"のポインタ
622デフォルトの名無しさん:2013/06/03(月) 17:36:28.49
C言語はポインタと配列が混ざると、頭の中でイメージと一致するまでしばらく混乱するんだよな

頭の中で絵が描けるようになれば理解できる
無理ならtypedefで分解しろ
そのうち理解できる
623デフォルトの名無しさん:2013/06/03(月) 17:41:21.18
配列に*をつける事ってまずないんじゃないですか?
*a[3]とかってする時ありますかね?
見たことないんですが
624デフォルトの名無しさん:2013/06/03(月) 17:54:09.12
>>620
http://ideone.com/xo2mpq

もしかしてこういう事がしたいのか?

「配列へのポインタ」と「ポインタのポインタ」は全く別物だから混同しないようにな
625デフォルトの名無しさん:2013/06/03(月) 17:54:48.51
int *b[2] → (int *) b [2] → bは要素数2の配列で、各要素はint型へのポインタ (int *)
int (*c)[2] → *c , int [2] → 要素数が2のint型の配列へのポインタ *c

ってことですかね? いまいちよく分からない。
そもそも、コンパイルの段階でどういう風に解釈されてるのでしょうか?

int *b[2] → bはポインタ*よりも先に配列[]に結びついてる? → bは配列で各要素の型がint* ?
int (*c)[2] → cは*に結びついてポインタになる? → ポインタcは要素数が2の配列へのポインタ ?

ごめんなさい。本当に、よく分かりません。
カッコの有無、カッコの位置で意味が変わるのが理解を困難にしています・・・
626デフォルトの名無しさん:2013/06/03(月) 17:58:26.67
int *b[2];ってしたら
ポインタのポインタって意味じゃね?
配列自体がポインタだから
627デフォルトの名無しさん:2013/06/03(月) 17:59:16.46
>>623
char *s = "abcde";
char *p[10]; // ポインタの配列
a[3] = &s[2];
printf("%c\n", *a[3]); // => 'c'

ってこと?
628デフォルトの名無しさん:2013/06/03(月) 17:59:53.96
間違い。
char *p[10]; // ポインタの配列

char *a[10]; // ポインタの配列
629デフォルトの名無しさん:2013/06/03(月) 18:14:48.67
>>626
その宣言で b++ はエラーになる
配列なのかポインタなのかを区別してるよ。 (ただし関数の引数での宣言は除く)
630デフォルトの名無しさん:2013/06/03(月) 18:41:36.50
>>625
変数eを付け加えてみた

http://ideone.com/CrelPU

これでイメージ湧かないか?
631デフォルトの名無しさん:2013/06/03(月) 18:44:43.02
>>623
int main(int argc, char *argv[])
632デフォルトの名無しさん:2013/06/03(月) 18:54:39.99
>>630
sizeof もとろうぜー


ポインタの配列は、ポインタの指してる先の要素数が歪な確保もできるし、ヌルポもおける
int *a[3];
a[0] = (int*)malloc(sizeof(int) * 1);
a[1] = NULL;
a[2] = (int*)malloc(sizeof(int) * 100);
633デフォルトの名無しさん:2013/06/03(月) 19:12:36.38
>>627
aどこから来たんだよ
634デフォルトの名無しさん:2013/06/03(月) 19:14:18.96
ポインタのポインタって実質何層くらいまで実用的なの?
n重ポインタみたいな形にできないってことは
せいぜいポインタのポインタのポインタくらいまでしか実用的
じゃないってことかな?int ******c;とか見たことないし
635デフォルトの名無しさん:2013/06/03(月) 19:15:28.80
じゃあ使わなきゃいいじゃん
636デフォルトの名無しさん:2013/06/03(月) 19:25:07.88
**までは普通に見る
***からはそうそうない
637デフォルトの名無しさん:2013/06/03(月) 20:20:52.35
宣言と使うときに乗算の演算子を使うのが混乱のもとだよなー
素直にpointerとか予約語に入れればよかったのに
638デフォルトの名無しさん:2013/06/03(月) 20:23:31.65
長い
639デフォルトの名無しさん:2013/06/03(月) 20:48:23.64
てか@でいいんじゃね?
@は何で使われないんだろう
640デフォルトの名無しさん:2013/06/03(月) 20:53:45.48
目の付け所で#は?
違うかw
641はちみつ餃子 ◆8X2XSCHEME :2013/06/03(月) 21:04:38.21
ヨーロッパ各国ではブラケットさえ別の文字をあてはめてしまってたりするので困ったもんだ。
http://mikeneko.creator.club.ne.jp/~lab/kcode/encode.html
642デフォルトの名無しさん:2013/06/03(月) 21:25:31.04
char array[10][10];
char (*p)[10];

p = &(array[0][0]);

p[0][0] = 0; /* a[0][0] = 0 */

こういうことがしたいの?
643デフォルトの名無しさん:2013/06/03(月) 21:37:04.58
>>637
アセンブリ言語みたいにポインタを[ ]で囲う表記にしてほしかった。
宣言はint [p];とかにしてくれば分かりやすかった気がするが、
・・・気のせいか。
644デフォルトの名無しさん:2013/06/03(月) 21:50:14.52
>>640
#と♯は間違いがちなので注意な
645デフォルトの名無しさん:2013/06/04(火) 01:49:13.69
results = funcA() | funcB() | funcC();
このfuncA,funcB ,funcCが実行される順番ってA→B→Cですか?
646はちみつ餃子 ◆8X2XSCHEME :2013/06/04(火) 03:25:58.26
>>645
No
647デフォルトの名無しさん:2013/06/04(火) 06:11:51.49
>>630
余計わけが分からん。
そもそも int (*)[2] ってなんやねん!
648デフォルトの名無しさん:2013/06/04(火) 07:26:39.85
>>645
順番は不定

funcA() || funcB() || funcC() ならその順番だけど
true が出てきた時点で以降は実行されない

全部がその順番で実行されてかつその論理和が欲しいのなら
個別に実行してあとで論理和を取るしか無い
649デフォルトの名無しさん:2013/06/04(火) 07:28:37.52
>>647
ポインタを宣言するには、変数名の前に * を付ける
これが大前提の文法

でも int *b[2]; とすると int* の配列になってしまうから
仕方が無いので括弧で無理矢理区切って int (*b)[2]; になる
ただそれだけ
650デフォルトの名無しさん:2013/06/04(火) 09:50:41.52
> int a[N][2] と int *b[2] と int (*c)[2] と int *(d[2])

俺の考えた最強のCだと宣言はそれぞれ、
a [N][2]int
b [2](int *)
c ([2]int *)
d [2](int *)
651デフォルトの名無しさん:2013/06/04(火) 09:54:30.45
>>650
そんな気持ち悪い宣言はC#でも見ないな

まあC#はポインタが隠蔽されていて参照になってるけど中身は同じ事だ
[]を前に持って行ったのは良い事だしジャグ配列が使えるんでポインタ配列
で悩む事はなくなった

でも a = b; とやるとコピーにならないのは最初びっくりするけどな
あ、スレ違いか
652デフォルトの名無しさん:2013/06/04(火) 10:24:24.77
6.7.5 Declarators

6 If, in the declaration "T D1", D1 has the form (D) then
ident has the type specified by the declaration "T D".

Thus, a declarator in parentheses is identical to the unparenthesized declarator,
but the binding of complicated declarators may be altered by parentheses.

カッコの有無で意味が変わってくるのは、ここら辺が関係してるんですかね?
ポインタむずかしいよおぉ・・・ というか、C言語むずかしよおぉ・・・ たすけてよおぉ・・・
この前からしつこくてすいません。ぼくにはC言語は無理です。諦めました・・・
653デフォルトの名無しさん:2013/06/04(火) 10:29:53.91
C言語のポインタとカッコと[]と関数の区別が難しいのは、演算子の優先順位があるから
ここをもう少し整理して設計すればこんなに難しくならなかったはず

しかし今更変えようがない
要は慣れ
654はちみつ餃子 ◆8X2XSCHEME :2013/06/04(火) 10:31:05.77
それなりに長く使っている人でもよくわかってないことはよくある。
ごちゃごちゃ書くより typedef で回り道しながら定義してなんとかするもの。
655デフォルトの名無しさん:2013/06/04(火) 10:33:56.33
この問題の元凶はたった1つ
* だけが単項で、[] と () は後置であること

* に相当する後置または
[] () に相当する前置があれば解決する

実は * に相当する後置は大昔からあるんだが
C99 も C11 もいらんものばかりごてごて増やすくせに
こういうところは気が利いていない
656デフォルトの名無しさん:2013/06/04(火) 11:50:49.75
>>651
それはC/C++ でもできること、というか、Java や c# と同じことを C/C++ でやりたいのなら「ごしごしと自分でそう書かなければならない」
657 ◆QZaw55cn4c :2013/06/04(火) 11:51:32.09
>>654
typedef ねえ‥‥‥
658デフォルトの名無しさん:2013/06/04(火) 12:44:58.93
>>657
言いたいことはわかる…。#defineを使えってことだろ?
659デフォルトの名無しさん:2013/06/04(火) 13:06:58.45
えっ?
660デフォルトの名無しさん:2013/06/04(火) 13:13:33.98
typedefを使わないと理解できないのは頭が固い証拠
661デフォルトの名無しさん:2013/06/04(火) 13:21:52.27
固かろうと肩こりだろうと戦った者が勝ちだ
662デフォルトの名無しさん:2013/06/04(火) 13:25:25.11
などど意味不明な言葉を発しており
663デフォルトの名無しさん:2013/06/04(火) 16:25:05.21
自分の言語で自分のコンパイラ作れない言語ってあるんですか?
CはCでCコンパイラ作れるって聞きましたけど
ほとんどは作れるんですか?
664デフォルトの名無しさん:2013/06/04(火) 16:28:43.10
ファイル出力ができる言語ならどれでも作れるっしょ
665デフォルトの名無しさん:2013/06/04(火) 16:33:26.86
COBOLはどうなんだろう
666デフォルトの名無しさん:2013/06/04(火) 16:40:43.48
COBOLは無理かもw
667デフォルトの名無しさん:2013/06/04(火) 16:42:22.35
>>664のFAの後でアフォ続出
668デフォルトの名無しさん:2013/06/04(火) 17:36:30.42
既存の配列を全てポインタでリストにする方法ってありますか?

例えば元々
int l[100];として

l[0]=34; l[1]=-23;...................l[101]=76;
みたいな感じなのを


34→-23→..................→76
と繋ぐようなデータ構造にしたいんですが
どうやればいいですか?
669デフォルトの名無しさん:2013/06/04(火) 17:41:10.45
だから、そうしろ
できなければ土方を雇え
雇う金がなければ諦めろ
670デフォルトの名無しさん:2013/06/04(火) 17:45:46.11
>>668
「リスト構造」でググれ
671デフォルトの名無しさん:2013/06/04(火) 18:01:13.24
>>670
単なるリストじゃなくて配列のリストです
672デフォルトの名無しさん:2013/06/04(火) 18:05:35.63
>>671
リスト構造だと駄目だと思う理由は?
673デフォルトの名無しさん:2013/06/04(火) 18:15:20.90
>>646
>>648
なるほど、ありがとうございます
674はちみつ餃子 ◆8X2XSCHEME :2013/06/04(火) 18:25:03.10
>>673
結論だけじゃ不親切だったかな。 副作用完了点 (sequence point) でググれば理屈がわかると思う。

>>645 の例で言えば副作用完了点は完全式の終わり (つまりはセミコロンのところ) になるので、
みっつの関数の副作用は少なくとも完全式の終わりの段階では完了しているということだけが保証されている。
675デフォルトの名無しさん:2013/06/04(火) 18:39:17.40
>>671
struct foo {
 struct foo *next;
 /* ここをなんとかしたい */ a;
} *p;

....
p の隣は p->next で手繰る ここまではリストで要素の詰め物

p->a が
 配列になってれば良いのか?
 ポインタで良いのか?(指してる先は元配列の1要素)
 整数値なのか? (値は元の配列から複写)
676デフォルトの名無しさん:2013/06/04(火) 19:31:43.95
>>675
ありがとうございます。
ただ->は分りにくいので.でいいですか?
677デフォルトの名無しさん:2013/06/04(火) 20:04:03.24
->の方が次って感じが出て分りやすいんじゃないか
678デフォルトの名無しさん:2013/06/04(火) 20:08:00.29
(*p).next の方が分かりにくいだろ
679デフォルトの名無しさん:2013/06/04(火) 20:33:49.25
p->next
(*p).next
アセンブラレベルで同じになるの?
それともこっちが速い、コードサイズ小さいとか違いが出るの?
680デフォルトの名無しさん:2013/06/04(火) 20:36:37.33
やってみれば分かるんじゃない?
そもそもコンパイラ依存だし
681はちみつ餃子 ◆8X2XSCHEME :2013/06/04(火) 22:14:54.27
規格では「(&E)->MOS は, E.MOS と同じである。」とは書かれてるね。
http://gazo.shitao.info/r/i/20130604221201_000.png

意味的に同じということであってアセンブラレベルで同じである必要はないけど、
基本的にはただの構文糖と考えていいんじゃないかな。
682デフォルトの名無しさん:2013/06/04(火) 22:18:11.53
ふーん、P でも N でもなく、か・・
683 ◆QZaw55cn4c :2013/06/04(火) 22:40:42.11
かといってCでもないし‥
684デフォルトの名無しさん:2013/06/04(火) 23:38:21.46
>>679
C++なら->や*がオーバーロードされていたら違いが出る可能性があるが
ここはCスレなので同じという答えになる
685デフォルトの名無しさん:2013/06/05(水) 00:21:41.47
可能性ねえよアフォ
686はちみつ餃子 ◆8X2XSCHEME :2013/06/05(水) 00:45:01.20
>>685
何言ってんの?
687デフォルトの名無しさん:2013/06/05(水) 07:21:29.14
>>685
可能性がないようにオーバーロードするのが正しいのは確かだけど
所詮はプログラマの裁量なんだよね
言語仕様は保証してくれない

例えば片方だけデバッグログ埋め込むとかあり得る話
688デフォルトの名無しさん:2013/06/05(水) 08:22:48.10
何も信じられないね
人間不振になるね
689デフォルトの名無しさん:2013/06/05(水) 09:59:56.93
生きていればそのうちいいこともあるさ
690デフォルトの名無しさん:2013/06/05(水) 16:22:21.86
プログラミングそのもので幸せにはなれないが、
プログラミングにより幸せになるチャンスを作ることはできる。
プログラミングを行って複雑で時間のかかる計算処理をプログラムに任せることにより、
本来その計算処理に使う時間からプログラミングに費やした時間を差し引いた分が余暇となる。
その余暇を使って精神衛生によい行いをしたり、教養を身に付けたりすることにより
幸せになるチャンスが生まれる。
691デフォルトの名無しさん:2013/06/05(水) 19:42:14.51
余暇にならねえよ
より高度で頭を悩ます雑用を押し付けられるだけ
科学技術が発達して現代人の残業時間減ったか?
逆に増えてるじゃねえか
搾取する側がもうけただけ
馬鹿馬鹿しい
692デフォルトの名無しさん:2013/06/05(水) 19:43:28.06
客先常駐で偉そうな客先社員に見下されて何の経験にもならない雑用を押し付けられて時間を無駄にした上に精神病むのがオチw
常駐先企業の人件費抑制に利用されただけの人生だったな残念w
693デフォルトの名無しさん:2013/06/05(水) 19:57:30.43
>>690
否定はしないが、全く別種の人類だな

プログラミングそのものが幸せな人がいたり、
数学そのものが大好きな人もいる

おまえも時間そのものが幸せなわけではあるまい
子供部屋でのママのご飯とオナニーの時間がそんなに好きなのか?
週刊誌や東スポの教えを教養とは俺は思わないぜ
教養ってそもそも何だと思う? 本質的に
694デフォルトの名無しさん:2013/06/05(水) 20:05:09.77
プログラミングやってると問題解決能力だけは鍛えられる
695デフォルトの名無しさん:2013/06/05(水) 23:18:52.39
プログラミングをしていると性格が歪んでくる
696デフォルトの名無しさん:2013/06/06(木) 01:12:09.01
プログラミングやってると精神異常になる
プログラミングやっている奴って成りすまし片山みたいな軽度精神異常って少なく
普通のプは江東区で女をばらばらにしてトイレに捨てた奴レベルの精神異常だし
697デフォルトの名無しさん:2013/06/06(木) 01:21:41.27
板違いのたわごとを延々と垂れ流す基地外のことだな
698デフォルトの名無しさん:2013/06/06(木) 15:47:45.13
>>694
問題解決能力があがるとストレスも溜まりにくくなるよな
複雑な詳細の書類も苦無く読めるようになる
結果として精神にとってプラスなんだよなプログラミングは
699デフォルトの名無しさん:2013/06/06(木) 15:58:53.89
問題解決能力って、グぐてコピペすること?
700デフォルトの名無しさん:2013/06/06(木) 16:39:45.79
構造体の内容をファイルに保存したり読み込んだりしたいです。
メモリ上での各メンバの並び順、ファイル書き出し時の並び順、及び、ファイル読み込み時の並び順は保証されますか?
struct MYSTRUCT{
long a, b;
char str[64];
long c;
}mystruct;
のように宣言した構造体の場合、
メモリ上での順番は、aの内容4バイト、bの内容4バイト、strの内容64バイト、cの内容4バイトの順で並んでいることは保証されますか?
また構造体ごとファイルに書き出したときにこの順番の並びのまま書き出されることは保証されますか?
試したらそのまま書き出されたし読み込みもできたのですが、たまたまという可能性があるので質問しました。

環境はWindows7以降限定、コンパイラはBCCです。
環境によってlongのサイズが違うという話は置いといてください。
BCCには突っ込まないでください。
701デフォルトの名無しさん:2013/06/06(木) 17:03:33.49
>>700
全て保証される。
702デフォルトの名無しさん:2013/06/06(木) 17:05:57.74
>>700
保証はエンバカに聞いてくれ
不安ならフィールドごとに読み書きすればいいと思うけど
pragma packとかで変なことしてなくて、fopenでbつけとけば
思ったとおりに動くと思うよ
703デフォルトの名無しさん:2013/06/06(木) 17:11:02.67
>>700
コンパイラ変えたりバージョンアップしたら動かなくなる可能性がある。
704デフォルトの名無しさん:2013/06/06(木) 17:29:44.91
ひょっとして、これって32bit環境で書き出して64bit環境で読み込んだらずれるとかそういう話?
705デフォルトの名無しさん:2013/06/06(木) 17:51:37.59
すごく初心者な質問なんだけど、reallocって関数の動作がちょっと分からないんだ
現在確保してる領域をコピって新しく確保した領域にブチ込んで元あった領域は開放、新しく確保した領域を返す関数って認識でおk?
706デフォルトの名無しさん:2013/06/06(木) 17:56:31.92
おk
707デフォルトの名無しさん:2013/06/06(木) 18:01:33.50
>>705
大体あってる
失敗したら開放せずにNULL返す
708デフォルトの名無しさん:2013/06/06(木) 18:23:11.81
>>699
原因の切り分けとか物事の解決へのアプローチとか
709デフォルトの名無しさん:2013/06/06(木) 21:07:53.25
>>698
>複雑な詳細の書類も苦無く読めるようになる

書類の出来の悪さに気付いてしまうという罠も。
710デフォルトの名無しさん:2013/06/06(木) 23:05:12.62
質問です
(byte And 0xf0) >> 4とはどういう意味なのでしょうか?
普段Cを使ってないのですがCで書かれたプログラムにこれが出てきたので教えて欲しいです
0x2Fが2となるようなんですが
711デフォルトの名無しさん:2013/06/06(木) 23:05:44.62
>>709
あるある

なんでこんな分かりにくい書き方なんだよって嘆くことが多くなった
712デフォルトの名無しさん:2013/06/06(木) 23:10:46.26
>>710
その変数byte、名前からも8ビットだろうけど、0xf0とマスクすることで
上位4ビット抽出、その後シフトして下位4ビットに移動。
組み込み系で使う。
713デフォルトの名無しさん:2013/06/06(木) 23:11:25.12
>>710
それCか?例えば
(0x2F & 0xf0) >> 4
なら
0x2F & 0xf0 が 0x20となって
0x20 >> 4 が 0x02 となる。
詳しくはビット演算で検索。
714デフォルトの名無しさん:2013/06/06(木) 23:13:29.13
でもシフトで下位4ビット消えるからANDするする必要ないよな。
715デフォルトの名無しさん:2013/06/06(木) 23:19:47.86
政府 「プログラミングを義務教育にします」
http://hayabusa3.2ch.net/test/read.cgi/news/1370523053/
716デフォルトの名無しさん:2013/06/06(木) 23:28:51.19
>>712-714
ありがとうございます
そのまま検索したらCのどうのこうのって出てきたのでここで聞いてみました
仕組みもなんとなくわかりました
717デフォルトの名無しさん:2013/06/07(金) 14:27:45.17
>>716
(1byte and 0x01) >> 0
(1byte and 0x02) >> 1
(1byte and 0x0c) >> 2
(1byte and 0xf0) >> 4

1はサウンドのタイプを表します。0だったらモノラル、1だったらステレオです。
2はよくわかりません。8bitか16bitかを表すようです。
3はサウンドレートです。0は5.5kHz、1が11kHz、2が22kHz、3が44kHzです。
4はもっとも重要です。サウンドのフォーマットを表します。
"(1byte and 0xf0) >> 4"で2が帰ってきたらmp3です。


ここら辺か?
718デフォルトの名無しさん:2013/06/07(金) 17:04:02.10
int ary[SIZE];
int i;
for(i=0;i<SIZE;++i)
{ /* ary[i]に適当な処理 */ }
//適当な処理
for(i=0;i<SIZE;++i)
{ /* ary[i]に適当な処理 */ }

こんな感じで最初に配列アクセスに使った自動変数を
同じ用途で使う場合とかって使いまわして良いですよね?
自動変数を使い回すのはまずいと言われたのですがどうなのでしょうか
719デフォルトの名無しさん:2013/06/07(金) 17:39:15.13
VC++使ってるんだけど
二次元配列ってmallocで生成できないんですか?
一次元だとエラー出ないけど
二次元だとエラーが出ます。
原因として何が考えられますか?
サイトのをそのままコピペしてるからエラー出ようがないんですが。
720デフォルトの名無しさん:2013/06/07(金) 17:43:02.95
二次元配列も一次元配列も同じだよ
721デフォルトの名無しさん:2013/06/07(金) 17:53:38.59
>>718
俺もループカウンタは使いまわしてるわ。
722はちみつ餃子 ◆8X2XSCHEME :2013/06/07(金) 17:57:56.09
>>719
型の書き方がまずいんじゃね。
C では void* 型から他のポインタへは暗黙に変換されるけど、
C++ ではそうではなかったりするから (C++ コンパイラではなく)
C コンパイラが使われてるかどうかの確認もした方がいいんじゃねーの。
俺は VC++ なんぞ使わんからエラーチェックがどの程度のもんか知らんけど。
723はちみつ餃子 ◆8X2XSCHEME :2013/06/07(金) 17:59:55.93
>>718
別に悪くはないと思うけど、
変数が使われる範囲はなるべく限定的な方が
うまいこと最適化されやすくはあるので、
最近の流儀としては使い回さない方が好まれると思う。
724デフォルトの名無しさん:2013/06/07(金) 18:13:54.95
>>722
いや普通にC言語のテンプレですよ
stdio.h
stdlib.h
インクルードしてるし

一応
一次元で代替でもできるけど
やっぱりx[i][j]という書き方はアプリケイトな感じがして
分りやすいんだけどな〜
725デフォルトの名無しさん:2013/06/07(金) 18:15:58.88
>>724
そのエラーになるコードを貼ればいいのに。
726デフォルトの名無しさん:2013/06/07(金) 18:22:20.67
>>725

int **doudouble;
int i, j, n, m;
n = 100, m = 100;

doudouble = malloc(sizeof(int *) * n);
for (i=0;i<n;i++) {
doudouble[i] = malloc(sizeof(int) * m);
}

ですね。
エラーでます。
727デフォルトの名無しさん:2013/06/07(金) 18:25:08.07
>>721
>>723
特にどっちかにしろって感じではないようですね
一応使い回しはやめてみることにします
728はちみつ餃子 ◆8X2XSCHEME :2013/06/07(金) 18:25:47.82
>>726
エラーメッセージも貼れよ
729デフォルトの名無しさん:2013/06/07(金) 18:29:53.73
>>728
void* 型〜〜〜〜みたいなエラーですね。
VC++重くて今起動できないので微かな記憶だとこうです。
730デフォルトの名無しさん:2013/06/07(金) 18:31:35.51
>>717
それです
FLVの仕組みを調べてました
731はちみつ餃子 ◆8X2XSCHEME :2013/06/07(金) 18:40:09.20
>>729
malloc を使ってる箇所それぞれを

doudouble = (int**) malloc(sizeof(int *) * n);
doudouble[i] = (int*) malloc(sizeof(int) * m);

という要領でキャストしたらうまくいく?
もしこれでうまくいくのならやっぱり C++ として解釈されているだけと思う。

VC++ って C についてはあんまり規格適合に頑張ってないみたいな話を聞くので、そのせいかも。
VC++ 使いの登場を待とうか。
732デフォルトの名無しさん:2013/06/07(金) 18:41:49.95
>>731
たぶんC++として解釈されてるんでしょうかね。
C++にもmallocの方法がそれですか?
733はちみつ餃子 ◆8X2XSCHEME :2013/06/07(金) 18:44:34.56
>>732
C++ だと malloc を使うときはキャストは要る。

まぁ C++ なら普通は malloc より new を使うんだけどさ。
734デフォルトの名無しさん:2013/06/07(金) 18:52:27.03
>>733
へー
かなり勉強になりました。
ありがとう^-^
735デフォルトの名無しさん:2013/06/07(金) 18:58:27.16
Visual Studio (VC++) 使ってるけどエラーなんてでないんだけど?
コンパイルオプション見直してみたら?
736デフォルトの名無しさん:2013/06/07(金) 19:36:51.58
ソースファイルの拡張子が .c で Cコンパイラ起動
.cpp で C++コンパイラ起動 cl.exe のオプションで明示的にこっちでやれってできるのか知らない
737デフォルトの名無しさん:2013/06/07(金) 21:39:21.87
>>718
そのケースなら特に問題はないと思う。

C++ なら

for(int i = 1; i < SE; i++){ ... }

とした方スコープが明確になっていいんだけど。
738はちみつ餃子 ◆8X2XSCHEME :2013/06/07(金) 23:51:18.70
>>737
それは C でも出来るよ。
C99 からだけどさすがにもう 10 年以上ともなれば C99 に対応してないコンパイラも少ないだろう。
739デフォルトの名無しさん:2013/06/08(土) 00:05:41.58
VCがバカにされた気がした
740デフォルトの名無しさん:2013/06/08(土) 00:25:18.93
bccは捨てろ
741デフォルトの名無しさん:2013/06/08(土) 00:37:14.01
ありがとうございます。
保証されるんですね。
742デフォルトの名無しさん:2013/06/08(土) 02:12:54.37
正の数Xを読み込んでX回数字nをscanfして一番大きい数字と二番目に大きい数字をprintfするプログラムをどう書けばいいのか分かりません
課題の条件として配列を使ってはいけません
forでX回ループさせる中でnをscanfしてifの条件をどう置けばいいのか分かりません
自分の中でnを1度他の文字に置き換えて比べたいのですがうまくできませんでした
宿題スレと迷いましたがあくまで答えでなくヒントが欲しいのでこちらに書かせて頂きます
743デフォルトの名無しさん:2013/06/08(土) 02:20:30.23
>>742
fgetsじゃなくてscanfだと..
値を保持するための変数を2つ定義して、新たに入力された数字とその2つを比較して一番小さい奴を落とせばいいんじゃない?
744デフォルトの名無しさん:2013/06/08(土) 02:29:49.02
>>743
授業で教わったものは確かprintf,scanf,for,ifだけなのでそれだけで組めということです
745デフォルトの名無しさん:2013/06/08(土) 02:31:11.49
途中送信してしまった
変数を2つは考えてませんでした ありがとうございます 頑張って組んでみます
746デフォルトの名無しさん:2013/06/08(土) 03:04:34.01
>>743さんのおかげで組めました
こんな感じになりました
ttp://www.dotup.org/uploda/www.dotup.org4255459.txt
ありがとうございました。
747デフォルトの名無しさん:2013/06/08(土) 03:32:26.77
>>744
漂う無能先生臭

>>746
X回全部同じ値でも大丈夫?
748デフォルトの名無しさん:2013/06/08(土) 03:41:44.98
>>747
C言語のことを深く考えずとりあえず組む練習させてもらってます
そのうちまた細かいことやっていくんじゃないかと

同値の場合考えてませんでした・・・
少しいじってみます ご指摘ありがとうございます
749デフォルトの名無しさん:2013/06/08(土) 08:54:11.34
>>742,748
同値、マイナス値対応。
http://ideone.com/rrkAG9
750デフォルトの名無しさん:2013/06/08(土) 23:32:07.25
配列ってmallocしないとどのくらいの要素数以上になるとメモリエラーが出ますかね?
10万だと実行時壊れちゃったんですがそんなもんですか?
751デフォルトの名無しさん:2013/06/08(土) 23:33:18.14
スタックを壊してるね
グローバルにすればいけるだろう
752デフォルトの名無しさん:2013/06/08(土) 23:38:41.10
>>751
グローバルってmain外で書くってこと?
それしたらエラーでましたよ。
構造体以外は外部宣言無理っぽいっす。
753デフォルトの名無しさん:2013/06/08(土) 23:39:25.79
グローバル変数が使えないコンパイラなの?
754デフォルトの名無しさん:2013/06/08(土) 23:52:31.59
>>753
gcc
Vc++
borland
全部エラーで増した。
755デフォルトの名無しさん:2013/06/08(土) 23:57:38.62
エラー内容を書け
756デフォルトの名無しさん:2013/06/09(日) 00:28:01.44
mallocで確保できる最大サイズっていくら?
bccだとsizeof(int)*20000くらいでエラーにはならないがうまく確保できてなかった
757デフォルトの名無しさん:2013/06/09(日) 00:33:07.92
どうせ変なコード書いてんだろ
758デフォルトの名無しさん:2013/06/09(日) 00:40:58.05
64kB が限界に決まってるだろ
759デフォルトの名無しさん:2013/06/09(日) 01:01:09.08
確保できるメモリは実行環境による
760デフォルトの名無しさん:2013/06/09(日) 01:51:52.63
リンカーとかのオプションでスタックサイズ指定できなかった?
761デフォルトの名無しさん:2013/06/09(日) 02:05:02.60
指定できるよ
762デフォルトの名無しさん:2013/06/09(日) 02:11:54.35
VisualStudioのLinkだと /STACK:reserve[,commit]
/STACK オプションは、スタックのサイズをバイト単位で指定します。
このオプションは、.exe ファイルのビルドだけに使用します。
このオプションは、仮想メモリ内のスタック割り当ての合計サイズを指定します。
既定のスタックのサイズは、1 MB です。
763デフォルトの名無しさん:2013/06/09(日) 03:59:36.17
質問者自身が「わからないことがわからない」状態だから
どんな答えを返しても無駄だと思うぞ。
764デフォルトの名無しさん:2013/06/09(日) 07:37:49.13
>>756
素朴な疑問なんだけど、たまにBCC(Borland C Compiler)使っている人って、
なんで独自で制限も多いコンパイラをいまだに使っているの?
授業で強制されているなら仕方がないにしても、Windowsなら
VC Express とか使ったほうが良いと思うんだけど。
765デフォルトの名無しさん:2013/06/09(日) 07:38:28.78
>>764
× > たまにBCC(Borland C Compiler)使っている人って
○ > たまに現れるBCC(Borland C Compiler)使っている人って
766デフォルトの名無しさん:2013/06/09(日) 08:20:53.21
VCより軽いから
767デフォルトの名無しさん:2013/06/09(日) 08:24:18.34
VC Expressも独自で制限も多いコンパイラ
768 ◆QZaw55cn4c :2013/06/09(日) 08:43:27.25
評価版についてくる bcc32 は実は無制限で -v -vG とか結構強力だし
769デフォルトの名無しさん:2013/06/09(日) 08:54:18.14
使ってる本人になぜって聞いてみる以外に答えはないだろう。
770デフォルトの名無しさん:2013/06/09(日) 09:09:00.04
ときどきっていうか、質問スレのBCC率はすごい高い印象。
学校の授業とかで使ってるのかね。
昔はLSI Cが多かった。
771デフォルトの名無しさん:2013/06/09(日) 09:48:45.79
LSI-Cは16bit環境専用だから、Windows7以降のPCだと
XP modeでも入れない限り使えないからね。
フリーで32bitのCコンパイラって言うと、BCC以外はgnu
になっちゃうけど、mingwとか環境ごと使うタイプは面倒
だからという理由かもね。
772デフォルトの名無しさん:2013/06/09(日) 09:49:55.70
ああ、>>771は64bit Windowsの場合ね。
32bit Windowsだとまだ16bitコードが動かせるんだっけ。
773デフォルトの名無しさん:2013/06/09(日) 10:45:53.32
動かせる。
LSI-Cで作ったフリーソフト、LHAとか結構あったけど
現在でも需要があるかは・・
774デフォルトの名無しさん:2013/06/09(日) 11:48:52.52
セキュリティ問題以来、ご縁が遠くなった
775デフォルトの名無しさん:2013/06/09(日) 12:50:23.17
Win32APIの関数で、DWORD引数のものに0を指定するのに大文字のFALSEを指定する例があったんですが、
C標準のfalseも0であることが保証されるでしょうか?
環境はVisualStudio2012です。
776775:2013/06/09(日) 12:53:14.29
自己解決しました。
0でOKみたいです。
失礼しました。
777デフォルトの名無しさん:2013/06/09(日) 13:16:13.34
>>775
BOOL以外にFALSE使うような例って、なんか地雷臭がするんだけど
778デフォルトの名無しさん:2013/06/09(日) 13:32:26.51
BOOL を返す関数の戻りが負になる、超有名な例があるね
779デフォルトの名無しさん:2013/06/09(日) 13:39:05.51
MS公式のサンプルでFALSEが使われてるならfalseなんか使わないでそっちを使ったほうがいいと思うけど。
780775:2013/06/09(日) 14:15:00.67
>>777
CreateFont関数です。
http://msdn.microsoft.com/ja-jp/library/cc428368.aspx
Webで検索すると、DWORD引数のものにFALSEやTRUEを使っている例が見られます。

>>779
素直にそうすることにします。
781デフォルトの名無しさん:2013/06/09(日) 18:33:23.26
メモリの仕組みについて考えたんですが
電子があるかどうか?つまり1か0か=1bitですが
電子が1から0に移り変わるタイミングの速さを、例えば1万ギア
で設定したら、一つの1bit回路で1万bit分扱えませんか?
つまり1bitは1か0ではあるが、常に互いを行き交っているというか。
782デフォルトの名無しさん:2013/06/09(日) 18:45:13.61
>>781
素晴らしい!
但し、仮説は実証しないとあくまで想像でしかないんだよね。
頑張って勉強して、自分でその仮説の正しさを証明してみるといいよ。
783デフォルトの名無しさん:2013/06/09(日) 18:47:23.93
メモリとはデータを記憶するためのもの
常に状態が変化しているのを記憶というのか?
784デフォルトの名無しさん:2013/06/09(日) 18:50:43.44
>>781
その1bit回路ってただの銅箔か?
ちょっと何言ってんだか分からない
785デフォルトの名無しさん:2013/06/09(日) 18:51:08.68
正確に言うと、常に変化している…
ちょっとぐらい変化しても、しきい値より高ければ真
しきい値より低ければ偽
これがディジタルだ
786デフォルトの名無しさん:2013/06/09(日) 18:52:25.27
>>783
等速なので状態は変化しません
787デフォルトの名無しさん:2013/06/09(日) 18:55:05.22
いまは1素子で3bitとか10bitくらいまで余裕で表現可能でしょ。
788デフォルトの名無しさん:2013/06/09(日) 19:02:42.31
>>781
その電子とやらを動かす仕組みを作るのが大変だと思う。
というか、根本的に現在の方式とは異なるので、何とも言えん。
789デフォルトの名無しさん:2013/06/09(日) 21:32:12.83
>>781
Cとまったく関係ないしデバイスの仕組みについて無知すぎる。
790デフォルトの名無しさん:2013/06/09(日) 22:00:44.33
>>789
すいません。語るの止めます。

ところで
Cで二つ以上の戻り値をreturnする事ってできないんですか?
構造体のx要素とy要素を返す関数作りたいのですが。
791デフォルトの名無しさん:2013/06/09(日) 22:01:46.13
rubyだとできるね
792デフォルトの名無しさん:2013/06/09(日) 22:04:47.76
ビット演算子って何に使うの?
793デフォルトの名無しさん:2013/06/09(日) 22:05:21.61
>>790
自分で回答している気がする
794デフォルトの名無しさん:2013/06/09(日) 22:19:33.95
>>792
ビット単位の処理したい時じゃないかな...
795はちみつ餃子 ◆8X2XSCHEME :2013/06/09(日) 22:20:00.06
>>791
Ruby の場合は配列を代入と同時に分配する機能 (分配束縛、多重代入) はあるけど、
ふたつ以上の戻り値をひとつの配列に固めて返しているのであって、
ふたつ以上の戻り値を返しているわけではない。

そして C でも何らかの形でひとつのオブジェクトにまとめなければ return で返すことは出来ない。
796デフォルトの名無しさん:2013/06/09(日) 22:21:33.88
引数にポインタ入れるしかないな
797デフォルトの名無しさん:2013/06/09(日) 22:29:55.54
構造体そのまま返せばいいだけだろ。
798デフォルトの名無しさん:2013/06/09(日) 22:30:17.53
def func
  return 10, 20
end

num1, num2 = func()
799はちみつ餃子 ◆8X2XSCHEME :2013/06/09(日) 22:38:30.85
>>798
ここらへんかな。

http://doc.ruby-lang.org/ja/1.9.3/doc/spec=2fcontrol.html#return
> 式が2つ以上 与えられた時には、それらを要素とする配列をメソッドの戻り値と します。
800デフォルトの名無しさん:2013/06/09(日) 23:06:18.32
>>798
それ良いな。 次のC/C++では出来るようにしろ
801はちみつ餃子 ◆8X2XSCHEME :2013/06/09(日) 23:36:26.36
802デフォルトの名無しさん:2013/06/09(日) 23:41:06.44
拡張しなくても構造体なり配列で返せばいいだけだろう。
803デフォルトの名無しさん:2013/06/09(日) 23:42:02.17
c++はもう出来るんだけどね male_tuple tieで
cは return (a[2]){10,20};より先に a=(int){x,y};が出来るようにならんとな
804デフォルトの名無しさん:2013/06/10(月) 00:52:30.15
>>781
> 電子が1から0に移り変わるタイミングの速さを、例えば1万ギア
> で設定したら、一つの1bit回路で1万bit分扱えませんか?

本来2値しか記憶できない1bitの場所に1万値を記憶できるようになるってことか。
1万bit分の情報量にはならないと思うが。
805デフォルトの名無しさん:2013/06/10(月) 02:47:07.40
>>781
出力するにも出力を受け取るにも、結局一万ギア(一万ビットの組み合わせ)データテーブルがいるんじゃない?
ビットと変化を時間軸側に倒したらそうなると思う
逆に処理の内容全て網羅したnバイトを同時に持てる容量と一気に表示出来る機構があればプログラムは事前に一回動いておくだけで終わる
806デフォルトの名無しさん:2013/06/10(月) 04:53:54.45
>>771
たまには OpenWatcom C++ のことも思い出してください
807デフォルトの名無しさん:2013/06/10(月) 06:43:43.79
char型の配列のアドレスは連続していることが保証されますか?
文字列の最初から途中の部分までを抜き出したい場合に、抜き出す文字数をアドレスで指定することは問題ありませんか?
char buf[] = "pqrstuvxyz;
char *ptr;
char test[16];
ptr = strchr( buf , 'x' );
strncpy( test , buf , ptr - buf ); //アドレスの差を文字の差として利用
以上のようなコードを書いていますが、問題ありませんか?
希望通りの動作はしましたが、ただ運が良かっただけかもしれないため質問しました。
OSはWindows7以降、コンパイラはBCCです。
strchrがnullを返した場合やtestのサイズを超える場合などは実際のコードではチェックしているので突っ込みなしでお願いします。
コンパイラにも突っ込みなしでお願いします。
808デフォルトの名無しさん:2013/06/10(月) 07:02:16.99
>>807
サイズは良い。

ただし、それでは終端の \0 がコピーされない。
仮に
char test[]="@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@";
として実行したら分かる。
809デフォルトの名無しさん:2013/06/10(月) 07:05:46.74
サイズが分かっているんだったらstrncpyじゃなくてmemmoveを使ったほうが速い
810デフォルトの名無しさん:2013/06/10(月) 22:19:47.18
>>803
return (a[2]){10,20};
a=(int){x,y};
ってどんな動作するん? aは何
811807:2013/06/10(月) 23:11:55.49
ありがとうございます。
いちいちstrlenしなくてもアドレスの差で大丈夫なんですね。
これからは安心して使えます。
812デフォルトの名無しさん:2013/06/11(火) 00:08:45.97
sizeof(char) == 1
が保証されていればだけどね
813デフォルトの名無しさん:2013/06/11(火) 00:13:57.79
でたsizeof厨ww
814デフォルトの名無しさん:2013/06/11(火) 00:35:04.14
sizeof(char)==1が常に真なら
sizeof(char)自体をill-formedにしちまえ
C には template もねえしな

俺はむしろsizeof(void)に有用な意味が欲しかったが、もうないだろう
希ガスみたいに腐らないのがCだと思っていたが、もう勝手にしろって感じ
_Boolだってお、バンバン
815デフォルトの名無しさん:2013/06/11(火) 00:56:52.56
sizeof(char) == 1は常に真だよ
規格で保証されてる
816デフォルトの名無しさん:2013/06/11(火) 01:04:26.81
うんうん、そーっすねえ
817デフォルトの名無しさん:2013/06/11(火) 01:07:18.04
何度同じ話題を繰り返すんだ
818デフォルトの名無しさん:2013/06/11(火) 01:14:29.34
お前が理解するまで
819デフォルトの名無しさん:2013/06/11(火) 01:21:06.19
私のことをそんなに大事に思っていてくれたなんて
820デフォルトの名無しさん:2013/06/11(火) 02:38:50.93
何度同じ話題を繰り返すんだ
有機生命体は同じようなことを繰り返すようにプログラムされている
821デフォルトの名無しさん:2013/06/11(火) 02:56:37.82
俺たちにもDNAという
プログラムが内蔵されているんだ

早く気付くんだ

このメッセージは君が覚醒するための
コマンドなんだぞ?

この世界は仮想世界であって
この世界が終った時に
君はコールドスリープから目覚めるんだ
822デフォルトの名無しさん:2013/06/11(火) 07:31:06.27
sizeof(char) == 1 は常に真だが
wchar_t を扱う時がある時は気をつけた方がいいな
sizeof(wchar_t) 倍する必要が
823デフォルトの名無しさん:2013/06/11(火) 07:32:11.07
と思ったら求めたいのはバイト数じゃなくて要素数だった
別に気をつける必要も無かった
824デフォルトの名無しさん:2013/06/11(火) 07:57:45.49
>>821
そっちの世界もさらに上から見たら仮想世界だよ
下見ずに上見たら?
825デフォルトの名無しさん:2013/06/11(火) 09:08:03.32
おっ Cのスレなんて今だにあったんだ。 C言語は基本だ。 しっかり身につけるのが吉。
ソフトの世界は進歩高度化によるジャンル化が激しくて、多種の言語が乱立するつらく悲しい修羅の道になっちまったが、
それでもCを理解しているのとしていないのでは雲泥の差が付く。
偉人が成し得てきたパラダイムシフトに挑戦するのはその後でええ!
826デフォルトの名無しさん:2013/06/11(火) 11:15:10.73
>>825
別に基本じゃねーだろ
827はちみつ餃子 ◆8X2XSCHEME :2013/06/11(火) 11:24:13.24
下位レイヤへのインターフェイスが必要になったらやっぱりどこかで C は出てくるからなぁ。

どこから始めるかによって基本なのかステップアップなのかは違うだろうけど、
必要か不必要かで言ったらやっぱり必要な言語であり続けるのが C だと思う。
828デフォルトの名無しさん:2013/06/11(火) 11:41:58.24
しゃぶれよ
829デフォルトの名無しさん:2013/06/11(火) 12:09:45.91
しゃぶやめろよ
830デフォルトの名無しさん:2013/06/11(火) 13:22:49.08
C言語で修羅の道終わる?
機械語とかLispとか…
831デフォルトの名無しさん:2013/06/11(火) 13:38:00.45
>>829
シャブなしでよくプログラムなんかやれるね
832デフォルトの名無しさん:2013/06/11(火) 13:40:42.90
>>831 おまわりさん、この人です!!
833デフォルトの名無しさん:2013/06/11(火) 15:24:12.10
危ないスレになってきたな
そのうちどれをキメたらプログラムが捗るとかそういう話になりそうだな
834デフォルトの名無しさん:2013/06/11(火) 15:32:07.49
独房を確保しやすいのはどこ
835デフォルトの名無しさん:2013/06/11(火) 15:55:10.82
メモリ上が一番確保しやすい
mallocで一発
836デフォルトの名無しさん:2013/06/11(火) 20:11:41.14
だがfreeする
837デフォルトの名無しさん:2013/06/11(火) 21:07:44.37
C言語は危ない匂いがするので好きだ。
アセンブラなど狂人の域だ。
838デフォルトの名無しさん:2013/06/11(火) 21:19:14.68
ある程度は低級な言語やっておいた方がいいと思う
うちの糞プログラマーはみんなphpしかやったことありませんとか、javaしか触ったことありませんとかだ。
ていうか、
プログラムの基本のアルゴリズムとか、リソース管理とかの考えがすっぽり抜け落ちてる。
839デフォルトの名無しさん:2013/06/11(火) 21:20:55.06
CPUレベルでどういう動きをするのかとか、そういった
最下層の動作を意識する教材だな。
840デフォルトの名無しさん:2013/06/11(火) 21:37:07.55
ならアセンブリやれよ
841デフォルトの名無しさん:2013/06/11(火) 21:39:06.55
>>830
Lispインタプリタを、Cで実装してみれば一挙にマスター出来るよ。
842デフォルトの名無しさん:2013/06/11(火) 21:57:22.93
>>838
本当にこれ
プログラミング初心者でいきなりC#に手を出したとき動くサンプルは作れるのにどうにもしっくりこないのが気持ち悪くてたまらなかった
Cやってからもう一度C#やってみるとオブジェクト指向の存在意義もきっちり理解できてけっこうすんなりいけた
843デフォルトの名無しさん:2013/06/11(火) 22:00:53.78
アセンブリ言語だけで動くプログラムを作れる環境がねえ・・・
844はちみつ餃子 ◆8X2XSCHEME :2013/06/11(火) 22:04:13.91
Windows SDK を入れたらアセンブラやリンカも入ってなかったっけ?
http://msdn.microsoft.com/ja-jp/windowsserver/bb980924
845デフォルトの名無しさん:2013/06/11(火) 22:06:44.56
アセンブリ言語だけでちゃんとしたexe作れんの?
C混ぜちゃだめだぜ
846デフォルトの名無しさん:2013/06/11(火) 22:09:42.37
FPGAでパイプライン回路やキャッシュシステム組んだ後だとアセンブリが楽しかった。
847デフォルトの名無しさん:2013/06/11(火) 22:13:02.40
SDK付属の汗だけで作れるよ
848デフォルトの名無しさん:2013/06/11(火) 22:14:14.24
そうなんだ
エントリポイントとかどうなってんの
849デフォルトの名無しさん:2013/06/11(火) 22:15:24.35
リンカー知らないの?
850デフォルトの名無しさん:2013/06/11(火) 22:16:23.54
>>844-845
使った事ないけど nasm とかでできるんじゃないの?
851はちみつ餃子 ◆8X2XSCHEME :2013/06/11(火) 22:17:50.01
>>850
もちろん出来るよ。
でも API を使ったりするのに SDK は要るだろ。
852デフォルトの名無しさん:2013/06/11(火) 22:22:20.10
アセンブラやってない馬鹿無能ゴミクズゲー専がC言語マスターしたとかわめいてたからな
本当に笑えたわ
853デフォルトの名無しさん:2013/06/11(火) 22:24:45.67
export なシンボル名がつけば リンカでエントリポイントをそこに指示できる
どう記述すればソレに相当するかは知らん

Cコンパイラが吐く ASM出力を見るだけでも面白いかもよ
最適化度合い変えてね
854はちみつ餃子 ◆8X2XSCHEME :2013/06/11(火) 22:31:00.08
アセンブラの細かい記法は重要ではないので、
既存のソフトをデバッガで追ってみたりするのもいいんじゃないか。

ゲームをチートしてみたりとかして遊ぶと楽しい。
溜めが必要な武器を常に最強で撃てるようにとかして無双したらスカッとする。
855デフォルトの名無しさん:2013/06/12(水) 15:22:29.61
C言語は危ないって言われるけど大丈夫じゃないの?
Windowsがそういうエラーは処理してくれるでしょ
856デフォルトの名無しさん:2013/06/12(水) 15:26:00.85
javaのガーベッシコレクションにあたる機構ってCにはあるの?
というかCはVMが無いんだろ?相当危なくねーか?
857デフォルトの名無しさん:2013/06/12(水) 15:27:51.35
ハードウェアに近いほうってようするに覚えゲーだから
たいしたことは無い。
高級言語ででかいアプリ作るほうが頭使う。
858デフォルトの名無しさん:2013/06/12(水) 15:29:40.69
用意されたもので何ができるかが重要だよな
アセンブラ勉強したい人は単なる好奇心だろうね
859デフォルトの名無しさん:2013/06/12(水) 15:32:40.57
高級言語しか知らない無能の言い訳でした
860デフォルトの名無しさん:2013/06/12(水) 15:33:32.54
>>855
包丁並みに危険なので子どもはさわってはダメだ
861デフォルトの名無しさん:2013/06/12(水) 15:58:09.16
862デフォルトの名無しさん:2013/06/12(水) 16:28:19.69
>>857
いや困ったことがあればエラーメッセージ垂れ流して逃げられる分だけ
人間相手の方が楽かもよ
863デフォルトの名無しさん:2013/06/12(水) 17:09:49.21
GCはメモリ管理のできない無能が逃げるところ
864デフォルトの名無しさん:2013/06/12(水) 17:13:22.78
WindowsならHeapAllocやVirtualAllocってのを使えば色々解決しない?
865デフォルトの名無しさん:2013/06/12(水) 18:05:23.92
アセンブラできないやつの話は信用するなよ
C言語を語る価値すらない
死ねってことだ
866デフォルトの名無しさん:2013/06/12(水) 18:18:05.16
ネットの自称アセンブラができるってやつの98%は20年くらい前の知識で
いまどきのCPUの性能を引き出すような書き方はできない。
867デフォルトの名無しさん:2013/06/12(水) 18:32:37.25
OS 上で動いてるんだから、危険と言ってもたいしたことないよ。

組み込みとかのスタンドアローン環境はまじヤバイが。
868デフォルトの名無しさん:2013/06/12(水) 18:38:54.00
アセンブラやメモリ、ヒープ領域とか理解してないクズ多すぎ
無能だよなあ
869デフォルトの名無しさん:2013/06/12(水) 18:43:01.73
>>867
> OS 上で動いてるんだから、危険と言ってもたいしたことないよ。

単なる設定ファイルだと侮り、モニタの周波数を間違った値にして壊すこともあるでしょ。
侮るのは良くない
870デフォルトの名無しさん:2013/06/12(水) 18:45:21.39
rand自作したいんだがどうしたらいいだろう?
もちろんrand()はつかったらだめということで
871デフォルトの名無しさん:2013/06/12(水) 18:47:34.43
xorの乱数
MTのrand
872デフォルトの名無しさん:2013/06/12(水) 18:47:36.28
乱数表を用意しておく
873デフォルトの名無しさん:2013/06/12(水) 18:49:11.31
シードを時間以外に何かないかな
874デフォルトの名無しさん:2013/06/12(水) 18:50:26.82
>>869
それは別にアセンブラじゃなくてもできるじゃん。
OSが管理するユーザプロセスとして動く限り、アセンブラだから危険とかはあんま無い。
875デフォルトの名無しさん:2013/06/12(水) 18:54:09.99
スタックエラーよく出してしまうんですが
あぁいうのってメモリにダメージ与えてるわけなんだろうか?
876 ◆QZaw55cn4c :2013/06/12(水) 18:58:10.83
>>856
BoehmGC
877デフォルトの名無しさん:2013/06/12(水) 18:59:11.89
>>875
プロセスが壊れるだけで、OSの動作には影響無いのが普通
878 ◆QZaw55cn4c :2013/06/12(水) 18:59:48.39
>>870
奥村さんの事典にいろいろある
879デフォルトの名無しさん:2013/06/12(水) 19:00:18.48
>>877
デバイスに物理的に悪影響及ぼすコードとかってあるんでしょうか?
例えばウイルスはブート部分に大ダメージを与えるそうですが
880デフォルトの名無しさん:2013/06/12(水) 19:02:14.32
CD/DVD/BD のトレイを出し入れする、とかは物理的ダメージを与えそうだなあ‥‥
メールがきたらべろ〜んてトレイを出すジョークがあるんだっけ?
881デフォルトの名無しさん:2013/06/12(水) 19:03:02.73
>>880
本当に物理的ですねw
ソフトウェアレベルでは結局
酷使するかどうかの話になるんですかね
882デフォルトの名無しさん:2013/06/12(水) 19:05:46.35
>>881
磁気テープ装置のような慣性動作部をもつ機械を”歩かせた”とか、レーザ素子の連続発光時間設定をミスったとかかな。
883デフォルトの名無しさん:2013/06/12(水) 19:14:14.95
ファンの制御をいじれば基板を燃やすことができるかもな
884デフォルトの名無しさん:2013/06/12(水) 19:19:22.03
手順を踏めばヤバイことはできる
デバイスへの物理的ダメージとはちょっと違うけど
例えば普通のユーザプロセスから自ユーザのファイルを全部消すのは可能だし
さらに特権ユーザになることが可能ならOS自身の動作に必要なファイルを消すことも可能

特権ユーザになれれば(まれに一般ユーザのままでも)ハードウェア関係に変な値を
設定して壊すことも可能だったりするし、SSD使ってるなら一般ユーザのままで延々と
ファイルシステムへ書き込みアクセスを続けるだけでもわりと深刻なダメージになりそう

でも、マシン語使わないとできないわけじゃないよね?
885デフォルトの名無しさん:2013/06/12(水) 19:22:47.84
CRTCを昇天させるプログラムとか昔あったね
今だとオーバークロック遊びとか?
886デフォルトの名無しさん:2013/06/12(水) 19:27:55.20
フロッピーのシーク音で音楽を鳴らすってのが昔あったけど
ああいうのは長くやるとヤバいと思う
887デフォルトの名無しさん:2013/06/12(水) 19:37:52.76
あったねー、オーバートラック
それをコピーガードに使うとか
888デフォルトの名無しさん:2013/06/12(水) 19:37:56.29
ここにいる人の想像力やばいですね。
メモリにとってよくない1 0の並びとかあるんですか?
1が連続して並んであると電子が反発しあって電磁波が発生するとか
そういうのありますか?
889デフォルトの名無しさん:2013/06/12(水) 19:41:54.33
>>888
memtestをずーっと眺めてると、そのへん狙ってるのがよくわかるよ
890デフォルトの名無しさん:2013/06/12(水) 19:45:49.44
>>889
????
891デフォルトの名無しさん:2013/06/12(水) 19:48:15.61
even側 odd側 それぞれで
クロストーク(こっちだけセットしたのにあっちに伝播しやがった)発生してないかの確認?
892デフォルトの名無しさん:2013/06/12(水) 19:55:25.00
GCを実装するならランタイムこみの実行環境になるんで
CやC++の設計思想からするとちょっと違う感じだな。
893デフォルトの名無しさん:2013/06/12(水) 19:59:14.75
メモリの不良品の話だろ
894デフォルトの名無しさん:2013/06/12(水) 20:19:53.84
動画ファイルを開いて何もしなかったらファイル破損しないんだけど
最後の行にxという文字を書いて一旦保存してから
もう一回開いてxを消してもファイルが破損してるのは何故ですか?
895デフォルトの名無しさん:2013/06/12(水) 20:25:28.84
>>894
Windowsだとバイナリファイルをテキストエディタで開いて保存すると
・単なる 0x0A というデータが 0x0D, 0x0A に変換されて保存される
・0x00や0x1Aが(テキスト)ファイルの終端とみなされそれ以降は保存されない
とかかなぁ
896デフォルトの名無しさん:2013/06/12(水) 20:26:12.25
エスパーするとコンパイラのバージョンが古いから
897デフォルトの名無しさん:2013/06/12(水) 20:40:10.87
>>879
> 例えばウイルスはブート部分に大ダメージを与えるそうですが

物理的にダメージ与えてる訳じゃないよ。

まあ、フラッシュメモリーに書き込みまくるようなウィルスなら多少ダメージはあるだろうけど。
898デフォルトの名無しさん:2013/06/12(水) 20:50:03.38
sseとかcpuの独自機能使って高速なベクトル演算とか
アセンブラ使わないとうまく最適化できないとかざらだわ
アセンブリ言語覚える必要がないとか言っちゃってる奴は所詮その程度のプログラムしか組めないってことだ
一般人レベルでお終い
899デフォルトの名無しさん:2013/06/12(水) 20:52:16.46
アセンブラ逃げまくるやつの言い訳って聞いてて耳が腐るよな
900デフォルトの名無しさん:2013/06/12(水) 20:57:02.18
まあ今の時代は必要ないね
901デフォルトの名無しさん:2013/06/12(水) 20:58:13.68
アセンブラできるとどんな面白いことができるんすか
902デフォルトの名無しさん:2013/06/12(水) 20:58:13.95
HaskellやLISPなんぞいいから
アセンブラをやりましょうね無能
903デフォルトの名無しさん:2013/06/12(水) 20:58:14.88
おまえがな
904デフォルトの名無しさん:2013/06/12(水) 20:58:55.84
903は>>900宛て
905デフォルトの名無しさん:2013/06/12(水) 21:00:03.75
真面目な話、数学勉強したほうがいいって
906デフォルトの名無しさん:2013/06/12(水) 21:00:11.25
今のゲーム製作してるようなゆとりはアセンブラすらわからなさそう
高級言語しかやってねー無能ってのが証明されちゃったな
907デフォルトの名無しさん:2013/06/12(水) 21:00:22.81
>>901
スレ違いのレスで乗っ取ることができる
908デフォルトの名無しさん:2013/06/12(水) 21:00:52.45
>真面目な話、数学勉強したほうがいいって

できて当たり前だろ
何のためにプログラミングしてだ?ん?ん?無能
909デフォルトの名無しさん:2013/06/12(水) 21:01:44.50
コードをプロファイリングしてボトルネックを見つけ出せる
くらいじゃないとアセンブラ使っても無駄だね。
910デフォルトの名無しさん:2013/06/12(水) 21:02:47.43
>>908
すげえ。そのくらい頭が良かったら中学生くらいで新聞も読み終わってそうだね
911デフォルトの名無しさん:2013/06/12(水) 21:03:36.80
そりゃあね
プログラミング自体が数学の上に成り立っているものであって
ソフトやるやつはハード解れってのと同じ
でも量子力学を憶えたからってCをすぐには使えない
912デフォルトの名無しさん:2013/06/12(水) 21:06:55.52
数学の話なのに量子力学が出てきた
913デフォルトの名無しさん:2013/06/12(水) 21:09:32.45
いやCの話だってw
914デフォルトの名無しさん:2013/06/12(水) 21:10:51.65
プログラミングなんて必要になったら覚えればいいんだよ。
必要もないのに学習したって、全然身につかないから
915デフォルトの名無しさん:2013/06/12(水) 21:12:23.63
デバイス工学やれよ
916デフォルトの名無しさん:2013/06/12(水) 21:14:03.06
>>909
速度が求められるならプロファイリングくらい当然やるだろ
嫌、求められなくても普通は自分でプログラムの出来を確認するのにするもんだと思うけどな
なんだ?意識の差か?
917デフォルトの名無しさん:2013/06/12(水) 21:17:05.91
>>916
ムキになって食い付いてるわりに、同じこと言ってるだけのパターン
918デフォルトの名無しさん:2013/06/12(水) 21:17:21.58
>>909
つまり君はアセンブラを使っても無駄ということだね
919デフォルトの名無しさん:2013/06/12(水) 21:18:42.21
C言語をやってるやつ、幼稚すぎるぞ・・・マジで
920デフォルトの名無しさん:2013/06/12(水) 21:29:22.24
phpしかできない無能先輩ちっす
921デフォルトの名無しさん:2013/06/12(水) 21:29:55.34
Linusが幼稚とは君はどれほど偉いのかね
922デフォルトの名無しさん:2013/06/12(水) 21:30:03.31
ワロタ
そーゆー時代か
923デフォルトの名無しさん:2013/06/12(水) 21:33:09.66
なんだ同じことって
924デフォルトの名無しさん:2013/06/12(水) 21:49:33.00
アセンブラは一度くらいやっておくと色々勉強になるけど、
実務では生産性の問題からイントリンシックでSIMD演算やる程度に抽象度は上げるな。
925デフォルトの名無しさん:2013/06/12(水) 21:56:53.31
一度じゃ足りない
最低二度だ
926デフォルトの名無しさん:2013/06/12(水) 21:58:41.04
それで済むならそれでいいやん
イントリンジック使えるくらいならちゃんとcpu命令も理解できてるだろ
927デフォルトの名無しさん:2013/06/12(水) 22:00:04.64
http://homepage1.nifty.com/eggs/houhou/bouei/tisei.html

>自分を直視することを避け、知性の世界や、観念的な世界に逃避してしまうことです。
>専門用語を乱発したり、やたらに難しい言葉を使ったり、言い訳的な言説に終始したり
>します。一見ものごとを理解しているように見えたりしますが、本質的なことは何も理解していません。

>難しい表現を使ったりすると、自分自身でも何かを理解したような気になりますし、誇大感を膨ら
>ませることもできます。しかし、その背後にあるのは優越感を持ちたいという気持ちであり、支配したい
>という願望です。これは見捨てられ不安から来る、無力感の裏返しだったりします。観念の世界に
>逃げ込んでしまうと、自分の感情をありのままに直視することが難しくなります。乱発する知的な言葉は、
>本質的な問題へのめくらましとして機能します。

>このような知性化は、言い訳のため屁理屈としても機能します。だれかから自分の行動の問題点を
>指摘されると、それなりのつじつまの合った説明をします。本人もその説明は間違っていないと思い
>込んでいます。自分の行動は正当化されます。しかし、第三者が見れば、単なる言い訳にしか見え
>ません。逃げているだけなのです。さらに追求されても、言い訳を重ねるだけで、決して自分を素直に
>見つめることはありません。そして、本人はどこにも問題がないと思い込んでいます。自己洞察におい
>ても、言い訳的な、的外れの展開に終始して、分析が停滞したりします。
928デフォルトの名無しさん:2013/06/12(水) 22:08:08.86
”アセンブラ”が難しい言葉なんだってw
929デフォルトの名無しさん:2013/06/12(水) 22:11:09.41
>>898
今は組み込み関数でいけるけどね
そっちの方がレジスタを勝手に最適化してくれるし便利
930デフォルトの名無しさん:2013/06/12(水) 22:17:30.63
まとめると、
駄目な奴は何をやっても駄目
931デフォルトの名無しさん:2013/06/12(水) 22:23:08.68
アセンブラ、最初はつまらんかったけど、SIMD化で劇速化して感動した。
それ以外は、コンパイラが天才すぎて、いたずらに複雑にしてしまうだけというオチ。
定数がからむ演算とか、人智を超えたコードを吐きやがるw
キャッシュ制御命令も、高度な予測機構を備えたハードウェアプリフェッチのおかげでほぼ意味なし状態w

唯一効果的なSIMDに関しても組み込み関数があるので、
アセンブラを書く必要がなくなった。
932デフォルトの名無しさん:2013/06/12(水) 22:47:58.15
アセンブラが必要なのは
divで剰余と余りを両方とも使う場合だな
こればっかりは組み込み関数でもどうにもならない
933デフォルトの名無しさん:2013/06/12(水) 22:48:30.42
剰余と余りって同じじゃん!
商と剰余だった
934デフォルトの名無しさん:2013/06/12(水) 22:53:56.21
解析にも使う
935デフォルトの名無しさん:2013/06/12(水) 22:56:04.28
客先常駐で偉そうな客先社員に見下されて何の経験にもならない雑用を押し付けられて時間を無駄にした上に精神病むのがオチw
30代で客先面談に受からなくなって嫌がらせを受けて自己都合退職に追い込まれて未経験の異業種で人生やり直すのがオチw
常駐先企業の人件費抑制に利用されただけの人生だったな残念w
936デフォルトの名無しさん:2013/06/12(水) 22:58:30.99
外注エリアだけ冷房の効きが弱い
仕事内容そのものに差があって下請けはゴミ仕事
食堂に行けば社員は会社支給のメーカーのロゴ入り作業着なのに自分だけスーツで浮くから
いつしか食堂に行くのが億劫になって自席で菓子パンになる
客先社員は24インチのダブルモニタなのに自ぶは解像度の低い旧式ノートPC
プログラミングしたのは自分なのにソースコードの頭に入れるコメントの作者名は客先の社員名
SVNやCVSへのコミット権限が与えられず、その都度社員にお願いしないといけない
コードレビューといいつつ客先社員へのプログラム勉強会になる
自社の勤務表ではお昼休みが1時間なのに客先の勤務表では45分だから毎日15分サービス労働になる
937デフォルトの名無しさん:2013/06/12(水) 23:09:35.87
どこだかだいたい想像付いたわw
938デフォルトの名無しさん:2013/06/13(木) 00:07:06.74
そのうち外注エリアだけ酸素濃度が低いとか言い出しそうだな
939デフォルトの名無しさん:2013/06/13(木) 00:31:39.80
18%
自分で測れよ文系
940デフォルトの名無しさん:2013/06/13(木) 01:34:58.69
お前らだっさいフォント使ってそうだな
アホみたいな遷移のUI作ったりな
アセンブラまで行くのも
UIやマネジメントに行くのも
一つのところから移動するという意味では同じ
ただ見えない他人を攻撃してるよりよっぽど良いわ
941デフォルトの名無しさん:2013/06/13(木) 01:49:45.78
オフショア開発の成果物がバグだらけだったのでクレーム入れたら、テストしろとは書いて無い、テストして欲しかったらテスト仕様、テストデータ、テストプログラム、テスト費用よこせ!に目が点になったあの日。
942デフォルトの名無しさん:2013/06/13(木) 01:55:08.75
契約に口出し出来るところまで行きな
943デフォルトの名無しさん:2013/06/13(木) 01:57:24.64
あー人を攻撃するって気持ちいいー
944デフォルトの名無しさん:2013/06/13(木) 03:03:26.20
>>943
人を攻撃した分だけそっくり自分に返ってくるぞ
945デフォルトの名無しさん:2013/06/13(木) 03:15:51.13
>>905
数学といってもいろいろあるさ、どの辺を押さえておけばいいの?
946デフォルトの名無しさん:2013/06/13(木) 04:09:54.77
中学数学と高校数学をマイペースで良いからとにかく毎日繰り返し勉強。
死ぬまで繰り返す。
947デフォルトの名無しさん:2013/06/13(木) 05:36:51.23
数学の知識があっても、応用が利かないアホになるだけじゃね
948デフォルトの名無しさん:2013/06/13(木) 05:40:04.03
数学の知識だけではだめだと思う。
むしろその知識が役立つ分野は限定されているから、
半端な知識ではだめだろう。
949デフォルトの名無しさん:2013/06/13(木) 08:11:28.11
プログラマの数学 [大型本]
結城 浩 (著)
数学ガール (数学ガールシリーズ 1) [ペーパーバック]
結城 浩 (著)
950デフォルトの名無しさん:2013/06/13(木) 10:30:53.53
文系ってすぐわかるよね
バカみたいに数学の重要性を連呼してる時点で
自分が数学ができずに苦労したことを皆にいましめてるんだろうね
951デフォルトの名無しさん:2013/06/13(木) 10:34:32.01
文系は高級言語やIDEいじって喜んでる程度の無能
アセンブラや低級なことまでわからない無能
自殺したほうがいいですよほんま
952デフォルトの名無しさん:2013/06/13(木) 10:48:07.79
理系は優秀でない=無能に直結する1ビット脳
953デフォルトの名無しさん:2013/06/13(木) 10:52:26.17
>>941
中国でしょ?あそこはそんなんが多い
954デフォルトの名無しさん:2013/06/13(木) 12:22:11.38
>>941
君が悪い
955デフォルトの名無しさん:2013/06/13(木) 12:32:03.51
そうだな
そんな事は見積段階で分かること
956デフォルトの名無しさん:2013/06/13(木) 12:36:37.49
都合のいい結果を得られた時に
検証もせずうのみにする奴はプログラマに向いていない
957デフォルトの名無しさん:2013/06/13(木) 13:27:22.03
クレーム入れたときの論点はバグなんか注文してないって話
要求どおりのものが納品されれば、テストはどっちでもいい内部事情だ

そもそも品質管理は作る側の責任範囲
瑕疵を指摘されて逆ギレする業者はどうぞご勝手に干されて下さい
その分、まともな業者が潤いますから
958デフォルトの名無しさん:2013/06/13(木) 13:52:32.64
>>957
君の会社には、受け入れテストという概念は無いの?
959デフォルトの名無しさん:2013/06/13(木) 13:58:07.00
>>958
>>941が言われたような「受け入れテスト」はない
960デフォルトの名無しさん:2013/06/13(木) 14:01:10.27
ならば契約書のバグか
961デフォルトの名無しさん:2013/06/13(木) 14:03:01.56
>>957
バグは必ず出るもんだし、要求仕様書を渡して終わりが通じるのは日本だけ
バグあっても要求仕様を満たしてれば契約的には問題ないからね
962デフォルトの名無しさん:2013/06/13(木) 14:21:25.84
>>953
プログラム:int leap(int year);
仕様:入力year=2000の場合、返り値=1
成果物:int leap(int year){return 1;}
963デフォルトの名無しさん:2013/06/13(木) 14:33:27.24
>>962
仕様書を見た時点で破り捨てるべき
964デフォルトの名無しさん:2013/06/13(木) 14:57:46.95
破っても捨てちゃだめだ
破って仕様書持ってきた奴の口に捩じ込んで
2時間ほど正座させて反省させるべきだ
965デフォルトの名無しさん:2013/06/13(木) 15:32:05.91
>>961
バグは必ず出るなんて、口が裂けても言っちゃダメだよ (たとえ事実でも)
バグがあっても要求仕様を満たす? 君のところの定義では何をバグというのだ?
966デフォルトの名無しさん:2013/06/13(木) 15:43:07.81
>>965
Windowsなんか、鬼のようにバグが出てますが
967デフォルトの名無しさん:2013/06/13(木) 15:51:46.08
>>966
バグが出てること自体はよいことではないが
追加課金せずに対応してるところが>>941が踏んだ地雷との決定的な違いだ
968デフォルトの名無しさん:2013/06/13(木) 16:36:08.07
>>953
韓国も負けてないな。
リアルでニッテイがー、って言い出したときはスケジュールがどうした?と考え込んだわ。
969デフォルトの名無しさん:2013/06/13(木) 19:56:25.78
配列を使わずに printf for while if を使って3ケタカンマ区切りをすることができますか?
970デフォルトの名無しさん:2013/06/13(木) 20:05:15.71
>>957
> そもそも品質管理は作る側の責任範囲

だからお前にテスト云々言われる筋合いはない。

直してほしいなら、せっせとバグ指摘してこい。
971デフォルトの名無しさん:2013/06/13(木) 20:06:37.77
>>970
消費者に直接、それを言いなアホ
972デフォルトの名無しさん:2013/06/13(木) 20:33:52.31
>>969
できるけど配列使ったほうが楽じゃね?
973デフォルトの名無しさん:2013/06/13(木) 20:50:38.54
HRESULTってなんて読むの?
ググっても出てこない
974片山博文MZパンク ◆0lBZNi.Q7evd :2013/06/13(木) 20:54:24.07
>>973
エイチリザルト
975デフォルトの名無しさん:2013/06/13(木) 20:54:40.02
H・リザルト
976デフォルトの名無しさん:2013/06/13(木) 20:55:58.35
unsigned をアンシグニド と読んでたググってもマジ出てこない
977デフォルトの名無しさん:2013/06/13(木) 20:56:45.02
>>973
妊娠!!
978デフォルトの名無しさん:2013/06/13(木) 21:18:43.61
>>972
そうなんですか?まだまだ初心者でして・・・・。
979デフォルトの名無しさん:2013/06/13(木) 21:34:54.84
>>978
配列使わずになんて縛りを初心者が何故思いついたのか
980デフォルトの名無しさん:2013/06/13(木) 21:35:21.36
void print_value(unsigned int x)
{
unsigned int i;

for(i=1;x/i>=1000;i*=1000)
;
printf("%u", x/i);
for(i/=1000;i>0;i/=1000)
printf(",%03u", (x/i)%1000);
printf("\n");
}
981デフォルトの名無しさん:2013/06/13(木) 21:46:11.19
>>980
かならず改行されてしまうのはともかく
3桁カンマ区切りするなら複数の数値を桁揃えとかしたいだろうし
それじゃちょっと不便じゃね?
982デフォルトの名無しさん:2013/06/13(木) 21:48:21.16
ちょっと何言ってるのか分からないです
983デフォルトの名無しさん:2013/06/13(木) 21:55:56.09
>>971
たいていのパッケージソフトなんて、もっとひどくてバグがあっても直す事すらしない事を、ライセンス条項でお客様に言ってるぞ。

そんな事も理解せずに、オフショアとか、バカすぎ。

そりゃいいカモになるわな (w
984デフォルトの名無しさん:2013/06/13(木) 21:58:50.89
>>983
なんか受け答えが変だと思ったら、2chには自分+数人しか居ないと勘違いしてる口か。
985デフォルトの名無しさん:2013/06/13(木) 22:26:37.10
>>983
>>971

永久ループ・・というより無限再帰だね
おまえは少なくとも made in japan じゃねえ
986デフォルトの名無しさん:2013/06/13(木) 22:37:01.09
再帰ってメモしたりしないと追えないんだけど
頭の中でやらずにお前らもメモしてる?
呼び出し元の行が上だったか下だったか忘れる
987デフォルトの名無しさん:2013/06/13(木) 22:47:18.98
>>969
http://toro.2ch.net/test/read.cgi/tech/1313183984/736
宿題スレの皆様にバグだししていただきました
988デフォルトの名無しさん:2013/06/13(木) 22:58:17.50
>>986
それははっきり、普通のループと同レベルだね
ある関数呼び出しが再帰かどうか、ロジックを追っているときは完全に記憶の彼方で
スタック見積もりをしているときロジックとは別な論点としてドライに収支計算する
上か下かは終始意味をなさない

//アセンブラにはCにない特殊な再帰もあるし
989デフォルトの名無しさん:2013/06/13(木) 23:01:12.02
白乾二合と皮蛋で気合い入ってるが、それは許せ(ウーイ
990デフォルトの名無しさん:2013/06/13(木) 23:20:02.87
>>984
かわいそうなやつ...

>>985
だから、日本製のソフトのライセンス条項読んでから出直してこいよ。

バグなしとか書いてるやつあるなら、示してみなよ。
991デフォルトの名無しさん:2013/06/14(金) 00:58:05.02
バグがありますなんて条項もみたことないわ
992デフォルトの名無しさん:2013/06/14(金) 01:36:52.37
as-isなんてもう決まり文句でしょ。
バグあっても責任取りません条項。
993デフォルトの名無しさん:2013/06/14(金) 01:39:58.20
中国ならスパイウェアをサービスしてくれるんじゃね?
994デフォルトの名無しさん:2013/06/14(金) 06:14:43.00
>>991
誰もそんなこと言ってないのに、バカじゃね?
995デフォルトの名無しさん:2013/06/14(金) 09:08:03.64
オフショアの発注とか何も知らないのに、ライセンスなら知ってると
どや顔で首を突っ込んだ挙げ句引くに引けなくなって
涙目になってる人がいますね
996デフォルトの名無しさん:2013/06/14(金) 11:03:28.31
>>988
>//アセンブラにはCにない特殊な再帰もあるし
jumpのことなら、再帰じゃなくて大域脱出とか、末尾再最適化で使われてる。
997デフォルトの名無しさん:2013/06/14(金) 11:28:03.57
998デフォルトの名無しさん:2013/06/14(金) 12:19:12.23
うめ
999デフォルトの名無しさん:2013/06/14(金) 12:19:46.58
999
1000デフォルトの名無しさん:2013/06/14(金) 12:20:19.10
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。