QZ再び発狂の予感
>後半、イメージエポック御影社長(左から2番目)を交えトークに拍車がかかります。 >会場からのゲーム専門学校生の質問「海外のFPSに日本のFPSが勝つにはどうすればいいと思いますか?」 >御影社長「うーん、海外のFPSはマサチューセッツ大学を首席で卒業したプログラマーとかが作っているので、それを超えるには根本的に開発スタイルを変えないとダメで・・・」 バカクズゲーム専門学校www 社会のゴミ 塵 発達障害、低IQそれが無能ゲーム専門学校 ゲーム専門学校生「海外のFPSに日本のFPSが勝つにはどうすればいいと思いますか?」 御影社長「うーん、海外のFPSはマサチューセッツ大学を首席で卒業したプログラマーとかが作っているので、それを超えるには根本的に開発スタイルを変えないとダメで・・・」 wwwww
数独を解くのを考える前に、問題を作るプログラムの方が色々考えるよね
>>3 いつも狂っているのでいまさら「発」狂というほどのものでもありませんが
候補を削っていくっていうけど、完全に候補を削れるのって最初の 数個~十数個くらいじゃないの? 例えば9マスに1~8がすでにあるから残りは9って分かるけど 複数のマスにそれぞれ複数の候補があるけど、他のマスの候補をこの 数字だと仮定した上で、こっちのマスのこの数字は削れるという感じじゃないの?
数独を解くアルゴリズム自慢もいいけど まさかリトライ制限もなしに総当たりとかいうバカは まさかここにはいないよな?
プログラミングの専門書読んでたらめちゃくちゃ頭良くなった気分になるけど アルゴリズム勉強したくてコンピュータ数学の専門書読んだら全然分らなくて 本当に自分が情けなくなる
総当たりって無理すぎだろ 平均6マスいるとして (6!)^9か1000京くらいの計算量だが....
数独でリトライ?
シュミレーションwwwwwwwwww シミュレーションかよ 教えてくれてありがとう
全角アルファベットは例外なく馬鹿って本当だったんだな。
ゲーム専門学校生ですが int a=10; char *b; b=(char*)a; これは何故キャストしてるのでしょうか?教えてください
型が違うからです
セグメンテーションフォルトさせたいからじゃない?
キャストしないでコンパイルかけてみればわかるよ。
構造体あればポインタいらないじゃん ポインタでリスト作ってる奴何なの?
このコードのやりたい事はさっぱり分からんな アドレス10番地ってDOS時代じゃないと扱えんぞ
>>11 難しいと言われる数独には
理詰めで解けない所はどうしてもあるから
リトライというか仮定法は必要
でも普通の問題は理詰めだけで大体解けるし
難しいと言われるものでも上限とか儲けるほど分岐が多くなることは無い
上限とか噴飯もの
本当にゴミクズだな無能ゲーム専門は
22 :
14 :2013/05/13(月) 23:12:45.13
>>15 理解しました
ゲーム作ってるんですが
メニュー表示ってどうやるかわかりますか?
RPGツクールというフレームワークをつかうと 簡単にメニュー表示できます
RPGツクール無しで作るやり方教えてください
メニューなんかのUI作りたいんだったらCなんかで作らずに Visual StudioでC#使ったほうが早い。
Visual Studio使ってるんですが、vfscanfがないらしく、 warning C4013: 関数 'vfscanf' は定義されていません。 とエラーがでます。vscanfを自分で実装しないといけないと思うのですが、どうやって実装するのか分かりません。 実装例が掲載されているサイト等ありましたら、教えて下さい。 あるいは、誰か実装して下さい・・・
何を言ってるのかさっぱりわからんが もしかして数独を作ろうとしてるのか
30 :
デフォルトの名無しさん :2013/05/14(火) 00:21:54.42
Cじゃないからスレチ 話題続けるようなら荒らし
式と文の違いは?
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);
>>31 値を持つのが式でアクションを記述するのが文
ただし式単体で文になることができる
.
>>32 マップを動かしてる最中に開くにはどうすればいいのでしょうか?
>>34 そのマップっていうのはどういう方法で表示してるの?
rogueみたいな感じですかね curses使えばドラクエみたいなマルチウィンドウなメニューも比較的簡単に作れる
>>35 配列にいれたやつです
別のマップとかやりたいんですがどうすればいいんでしょうか?
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の順に評価されますか? もしそうなら仕様的に一番真となる確率の高い順に並べておいたほうが評価回数が減って高速になりますよね?
>>40 基本的にはそう
ただよっぽど確率偏ってるか、特定の場合の処理が重いとかじゃないとそこまで差は出ないんじゃないかな
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
クマー
>>44 9次元数独か…?
俺は3次元までしか認識できないな
スタックオーバーフローで実行できない。
現在いるマップから違うマップを読み込むにはどうしたらいいのでしょうか? 階段マークの@にぶつかったら判定で次のマップにいきたのですが マップは2次元配列1個しかありません
方法は色々あるので、質問が漠然としすぎてて説明しづらい。 単純に言えば、二次元配列を二個作ればいいんじゃね。
>>48 マップの2次元配列に直接アクセスしているんだろう。
・マップが切り替わるときは、マップ配列を新しいマップデータで書き換える
・アクセスは、マップ本体を指すポインタでやって、マップが切り替わるときに
ポインタの指す先を新しいマップに切り替える
他にも方法があるかもしれないが自分で理解しやすい方法を選ぶのが良い。
よくわかりません ソースコードやってください
>>51 この板はなりすましがいるから続ける気ならトリップつけてね。
ゲー専はちったぁ自分で考えろ
今できてる分のソースをどっかに上げるとかしないと、質問には答えようがない。
回答の練習のため あえて釣られてみるとか
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; } エラーです。 何故ですか? どうすれば?
エラーメッセージ書いてよ
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; } だとエラーなしです。
>>59 C言語で配列を引数に使う場合は一番左側以外の次元数は既に決定されて
いなければならない
つまりこの場合だと int h[][5] のような感じで定数が入っていなければコンパイルできない
新しくファイルから読めば?
62 :
デフォルトの名無しさん :2013/05/14(火) 23:14:29.18
>>60 自由に対応する添え字の要素に値を代入したい場合どうしたらいいでしょうか?
他言語の使用を検討する
>>62 ポインタのポインタを使用して「二次元配列もどき」を使用する
66 :
40 :2013/05/15(水) 02:02:18.19
>>41 サンクス
かなり偏りあるから確率高い順に並べ替えとく
インタプリタ言語もどき作ってるんだけど
ユーザーが頻繁には使わなさそうな命令は後ろのほうにしとくわ
ループの中で100まん回呼ばれるとかじゃなきゃ不要
>>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)]か
ゲームの話題はスレ違い キチガイ死ねやゲー専
別にいいじゃん
74 :
デフォルトの名無しさん :2013/05/15(水) 14:37:43.42
昼間から書き込んでるしゲー専じゃなくてニートだろ
本当にゲー専通いなら、金払って教えてもらってるんだからそこで聞きゃいいじゃん 聞くだけの対価払ってるんだしー
>>75 僕が通ってるゲーム専門学校はへぼいです
DXライブラリとかそんなヘボいことしかしません
周りのレベルも低いし自分はUnityを使ってますし
3D>>
>>2 D
先生もUnityのこと詳しくないし役に立ちません
unityってCで作れるの?
>>78 まだ本買ったばっかりなのでわかりません・・・
本を買う前にそこに何が書いてあるか確かめるべきだし 学校に入る前にそこで何を身につけるか具体的に決めておくべき
はい
>>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];
とする
>>82 よくわからず困ってました
やってみたいと思います
map1(*p)[10]とかでもいいんですかねやってみます
current_map(*p)[10];
void a(void){b();} void b(void){c();} void c(void){a();} こういうとき関数内で呼び出す関数が 後ろで宣言されて順番変えてもまた別の関数が同じ事になりますよね? 対処の仕方教えて下さい。
頭にプロトタイプ宣言だけを置いて型だけは解決させちゃう void b(void); void c(void); void a(void) { b(); } void b(void) { c(); } void c(void) { a(); }
ありがとうございます!
思考停止
C言語を使ったUNIXシステムコールプログラミングの質問させてください
catコマンドライクなプログラムを書いているんですけど
「引数に指定されたファイルの各行に行番号を付けて標準出力に出力する
プログラムを作りなさい.行番号は 4 桁とします.
ファイルを読むのは,システムコールである open, read, close
を直接用いなさい.」
(行の終りには改行コードが入っています)
この問題文の解答となるようなコードを書きたいんだけど、どうしてもfdopenとかgetchar、fgetsを使ったものしか思いつきません
行番号をプリントしないでファイルの内容を表示するコードは書けてます
→
http://codepad.org/rik8bxkY どなたかご教授願います
>>90 ,
>>91 ちゃんと動きました、すごく納得しました!
よく読んで勉強したいと思います
ありがとうございました!
思考停止
95 :
デフォルトの名無しさん :2013/05/16(木) 12:40:10.52
特に特別なことをしなくても ポインタを使ったほうが処理が速いの?
>>95 俺の認識だがポインタを使うのは
・渡す変数のサイズがポインタのアドレスのサイズより大きい場合(構造体など)
・配列の場合
・渡した変数をただ使うだけでなく内容を書き換えたい場合
100 :
デフォルトの名無しさん :2013/05/16(木) 17:23:10.05
int *pary=(int*)malloc(sizeof(int)*size); このように宣言されたポインタからsizeを取得する方法ってありますか? size =sizeof(pary)/sizeof(int); だとダメなので
>>100 ポインタはある場所を指し示しているだけであって、そのsize情報は持たない
sizeはどこかに自分で覚えておくしかない
>>100 特定環境では _msize が使える
が、移植性は無くなる
ポインタが必要だと思ったことがない 配列mallocすればいいだけの話だろ... ハッシュ使えないし何の役にも立たないわ
>>100 mallocの実装見れば
どこかに持ってるかもしれないし
どこにも持ってないかもしれない
mallocしたメモリからは取れない って一刀両断するのが優しさというもの
実際ポインタは実用的じゃないでしょ コードも分りにくいしアクセスも遅い ポインタのリストってなんだよ あほみたいに遅いじゃん
馬鹿セグメントとか理解してないから ヒープ領域とかすらわからない無能
109 :
デフォルトの名無しさん :2013/05/16(木) 18:13:25.91
ポインタで大容量のデータ保持は無理だね
配列や構造体 o(1)でアクセスできないとか使えないだろ
>>112 それはデータ構造によるな。
ポインタをデータ構造の一種だと思っているのかね。
ポインタでできることは配列でできるだろ? ゲームとかポインタ使ったコード見たことないわ
配列は最初に決めたサイズより増やしたり減らしたりできないだろう? もしサイズの見積もりができない問題だったらどうする?
ポインタはコピーできるけど 配列コピーしようと思ったら関数呼ばないと駄目じゃない
>>115 10億個mallocすればいい
それにどうしても配列使いたくないならjavaやればいいじゃん
iteratorもあるし
何故ポインタそんなに使いたいのか
コードも馬鹿長くなるし
ポインタが嫌なら使わなければいい はい。次の患者の方
使わなければいいじゃなくて使う必要無いんだろ 何かと言い訳してポインタ使いたいだけだろ趣味を押し付けるな
リンクリスト.vs.配列みたいな対比だったらわかるけど、 ポインタ.vs.配列とかざっくりすぎるは。 ポインタってデータ構造の名前じゃないし。
ポインタを駆使しても文字列操作できないとかC欠陥多すぎワロタ
122 :
デフォルトの名無しさん :2013/05/16(木) 18:52:39.47
ではC言語使っていただかなくて結構です。 今すぐお引き取りください。 息を引き取って頂いても構いません。
ポインタを何だと思っているのか知らないが、 ポインタに咬まれて大怪我でも負ったのか?
ポインタのポインタとか絶対使わないでしょ? 絶対使わないといけない場面がない
125 :
デフォルトの名無しさん :2013/05/16(木) 19:00:35.10
なら使わなくていいだけのことじゃん
データ本体集合(=配列)がでかくて複製取れないけど データ要素への参照集合を別途保持しときたい(=ポインタ配列) データ本体の要素の書き換えは別途保持した側にも反映したい 配列のインデックスを保持する配列でも実装はできるが…
>>125 俺は勿論使ってないけど君だって使う必要無いじゃん?
使ってるの?
int main(int argc, char **argv);
>>115 そのためにrealloc()があるだろ
そんな欠陥関数使わない
コンストラクタ/デストラクタのないC言語ならrealloc()で十分
ここは自分の経験不足と視野の狭さを延々とアピールする場ではありません
realloc()がいけない理由を説明してから言え
発狂w
発狂wじゃねーよ この場合理由を答えられないお前が負けだ
結局の所、関数呼び出しだってポインタ操作なのに ポインタ使わずに出来るのか?
拡張されるとポインタが変わることもあるし変わらないこともある
僕の肛門も拡張されそうです
realloc()って欠陥有りなの?
ret = realloc(ptr, size); ただし size が 0 だった 元ptr は開放されるのか? ret は非NULLなのか?
144 :
95 :2013/05/16(木) 22:19:56.06
速いかどうかだけ聞きたい 別に使うとかじゃなくて知識としていれておきたい
size0のreallocがそもそも無意味。0に再割り当てするならfreeを使う。
147 :
デフォルトの名無しさん :2013/05/16(木) 22:37:48.49
ポインタっていうのはmalloc()とかで動的に確保したメモリのことを言ってるんだろうか。
150 :
デフォルトの名無しさん :2013/05/16(木) 22:47:34.39
>>149 実際にプログラムを実行したときにどちらが処理の時間が速いか
>>150 どちらというのは自動や静的と何を指す?
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で作った変数や関数
>>153 int xxx;
int *p1 = &xxx;
int *p2 = new int();
*p1 = 0;
*p2 = 0;
これでどっちが速いかって話?
157 :
デフォルトの名無しさん :2013/05/16(木) 23:02:29.64
>>154 うん
それに
int a;
a = 0;
も加えてほしい
もしかして最近はCとC++の区別もつかない雑魚が紛れ込んでるのか?
例えば構造体の奥底に 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; の方が高速じゃないかな
>>157 それが一番速いよ。
ポインタなんて無駄だから使う必要ない。
よかったね。
>>145 無意味になりえるから size のチェックをして
相応に分岐しましょうね ってことになる
一応 やっても良いことになってるけど実装依存だったかな
malloc(0) の時の戻り値も同様で
ANSI Cを準拠してない組み込み系なら注意が必要
例えば C99 以降なら構造体の最後のメンバは不完全型 (サイズが確定してない型) でもよいことになってる。
こういうのが許される。
struct foo {
int a;
int b[];
};
でも、その場合にはふたつ以上のメンバを持つことが必要という制約はある。
この制約はやはりサイズがゼロのオブジェクトを許すと面倒なことになるからだと思う。
malloc(0) は未定義ではあるものの、失敗する (ヌルを返す) 実装も許されることを考えれば常識的には避けるべき。
Posix 的には処理系定義でヌルを返すか一意なポインタを返すかのどちらかということになってる。
http://pubs.opengroup.org/onlinepubs/009695399/functions/malloc.html
二重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++)
>>159 まともなコンパイラなら最適化されてどっちも同じような感じになる。
C言語は面倒くさいものです マクロを使って変態文法を編み出すこともできなくはありませんがオススメはしません
>>165 凄いですねそれ
まじで出来るんですか?
ちなみにiとjは良く使うからi固定して
F(1,4,1,5)みたいにもできますか?
まぁもちろんi++とj++も仕方ないとして
170 :
デフォルトの名無しさん :2013/05/17(金) 00:26:08.28
>>168 これ以上、省略しても意味ない。
素早く打てるようにブラインドタッチを練習しろ
>>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までとかだから
まじで面倒臭いです コピペも探すのに苦労
もっと言えば,も相当面倒スペースで,の代わりできないですか? F(1 9 1 9)pd(i*j);
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));
>>169 それ
ptr = malloc(...
printf("%p\n", ptr);
free(ptr);
printf("%p\n", ptr);
と同じで printf で ptr を表示しても意味ないと思うよ?
プログラマーって効率図るために
>>174 さんのようなマクロ使いまくってるわけですか?
使うわけない 競技プログラミングくらい まともなエディタでも覚えれば済む話
>>174 かなり使えそうですね
","はさすがに" "で代用できないですか?
親指の位置にあるスペースで代用したいです
効率化と称して俺俺仕様のマクロを作って書いた -- 1年後 -- 何やってるかさっぱりわからなくなってた+コードを追う気力が失せた
タイピングが嫌ならrubyでもやってなさい
>>177 便利なエディタだとバックプログラムの影響でかなり重くなっちゃうんですよね
だからtredpadかメモ帳でプログラム書くのが一番速いんですよ
マクロ便利過ぎワロタw
覚えておくがいい お前にとって便利な武器は お前を苦しめる敵が使っても便利な武器だということを
この調子だとIOCCCスレになるな
1988年のwestley.c(円形のコードで円周率が出る)が好き
#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 が規格に準拠してない?
>>187 別言語の解説サイト見てもしょうがないだろ
C言語ならコンパイルできなくて当然
>>188 それC++でしか通らないよ
勘違いしてると思う
よく読んでみな
どこかで、C99でできるって見たんだけど、気のせいか? まあ、どうでもいいけど。
ideoneのC99でコンパイルしたら、グローバル変数は#defineじゃないとだめだった。 ローカル変数だと int size = 100; int tbl[size]; とかconstつけなくてもOK。
そもそもVSってC99対応してないんじゃないっけ
gccで「ほぼ」C99に対応している
>>194 色々と戦略を適用するので長いのは当然だ
でも長いから読むのは適当にしてエスパーする
数独は理詰めだけでは解けない問題があるので
行き詰まったら複数の可能性を順番に試していって
解けなければバックトラックする必要がある
アルゴリズムの話ならスレチ
総当たりじゃなくて理詰めで解ける方法があれば一番なんですが、 やっぱり最終的にはバックトラックが必要なんでしょうかね。 バックトラック法を実装してみます。
BackTrackというOSを中2病みたいに批判して使わないやつはなんなの? 意識高いクズはどうしようもないね
>>194 145行目は
× > fprintf(stdout," %d ",plane->cell[i][j]);
○ > fprintf(stdout," %d ",plane->cell[i][j].current);
だよね
>>199 ものすごい初歩的なミスですね。直しときました。
BagDragはすぐにとっ捕まるから他の方法を考えたほうがいい
128*128回の再帰でスタックオーバーとか使えねーなこの言語
>>198 最近は kali linux が熱いようで
207 :
デフォルトの名無しさん :2013/05/18(土) 04:21:55.38
ゲー専はもう挫折したのか 短い人生だったな
就活しているんですが今のところ内定0です。
希望はソフトウェア開発でプログラミングをしたいと思っています。
学生時代C言語に打ち込んでいたので1000行くらいのプログラムなら書けます。
このご時世簡単に内定が取れるとは思ってないのですが10社連続で落ちてしまい
さすがに精神の限界です。プログラマの方がいればアドバイス下さい。
>>207 や
>>209 のような意見はいりません。
まず2chで釣りするのをやめて就活に専念しましょう
212 :
210 :2013/05/18(土) 14:44:59.83
作れるプログラムの内容と言いますと ftpによる通信プログラム ニューラルネットワークを応用したモデルの構想 Androidアプリ(簡単なゲーム) 動画編集ソフト(動画に効果をつけたりするアプリ) 他にできる言語はCRL,C++,java,javascriptです。 高2の時にプログラミングに出会い、以降毎日6,7時間以上 コンピュータの勉強をしていました。2浪で現在23歳なのですが 中々希望通りの就職が見つかりません。プログラミングだけで 起業は無理でしょうか?どこも内定が無いならそうするしか無さそうです。
> 学生時代C言語に打ち込んでいたので1000行くらいのプログラムなら書けます。 お引取りいただいて結構です
まあプログラムが書けることは完成できることの第一歩でしか ないからね。まとまったものを作れるかどうかが問題。
>>212 で?
お前にしかないスキルは何なの?
誰でも持ってるようなスキルしか持ってない奴なんか代わりはいくらでもいるんだから
それで希望の業種に就職できるわけないだろ、お前に選ぶ権利なんかないんだから勘違いするな
就職が無理なら起業ってのも頭悪すぎ
起業ってのは勝算あってのものであって就職すらできない奴の代替案ではない
人並みのことすらできない奴に起業なんか無理
業種や給与や地域や環境を選ばずに就職する他お前に選択肢はない
もしかしてQZの前身か? いずれ宿題ニートになるぞ
宿題すらできない荒らしよりはまし なんか書いてごらんよ?
QZがこんなところにも潜伏していた
>>215 まとまったものは今までに何回も作りました。
マインスイーパ
テトリス
株の変動を解析するプログラム
写メで移した文字をコンピュータで読み込むプログラム
等です。
>>216 でもSEやPGは未経験の人も案外多いと聞きました。
僕は実際、プログラミングの経験があって色んなものに挑戦しようという
意識が人よりも高いと思います。だからアドバンテージにはなると思うの
ですが。起業に関してはその通りだと思います。最後の最後の最後の手段
にしようと思います。
その程度の実力で起業とかバカだなクズの極みw 自殺行為に等しいよ 無能ゲーム専門は生きてる価値すらないなw
>>222 だったらテトリス作ってみろよ
半年勉強したくらいじゃ作れんぞ
起業は仕事をもらえるコネがあるかどうかで、技術はテトリス作れたらむしろ余裕だろ。
>>220 こういうのはどうだろう
テトリス、ただしステレオグラム(ドットがちらばっている絵2枚をじっとみていると立体が浮かび上がってくる奴だね)での実装
俺も作ってみたいのだが
画像からパターン認証って凄いな本当に作ったのか?
コネを利用するのではなく、自分がコネになりたい。
数日前から数独を解くプログラム作ってたけど、バックトラック法というのがよく分からない。 とりあえず、今できてるところまでで簡単な問題はほとんど解けるので、この辺でやめとく。 だれか暇な人いたらバックトラック法で数独の問題を解くプログラムつくってください。
229 :
片山博文MZパンク ◆0lBZNi.Q7evd :2013/05/18(土) 23:21:59.41
俺のホームページにソース付きで数独の問題を解いたり作ったりするソフトを公開している。あまり速くないけど。
>>229 お前のサイトのはキーロガーしか興味ねえわ
今度Cでつくるときに参考にするけどな
キーロガーなんかwindows.hの練習見たいなもんだろ
>>229 あなたプログラマなんですか?凄いですよね。
かなり幅広い事やってますね。実務では何やってるんですか?
Borland C++ Compiler 5.5.1を簡単にインストールできるプログラムです。 ↑ これ凄くないですか?何でそんな事できるんですか?
>>229 wepキーを解析するソフトとか作れますか?
次の患者さんどうぞー
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
239 :
デフォルトの名無しさん :2013/05/19(日) 07:29:44.01
>>233 Install Shield くらい憶えろよ
というか今時bccなんか使ってんのか
片山博文MZパンク
Windows向けの簡易的ボットネット風やRAT風のサンプルコードと解説ページ作ってください
日本人でも使えそうななもの
>>234 本当にバカだなそんなのbacktrackにはいってるだろ?
自演キタコレ
>>241 つWindowsのサービス
サービスの登録ってだまあってできるもんでしたっけ?
ポインタの仕組みをきっちり理解するために参考になる本とかサイトってある? 大学で配られた教科書は表面をなぞってるだけでイマイチしっくりこない 一応自作関数の定義とか構造体くらいまでは理解してるレベル
アセンブラやるといいよ
セグメントの理解、.rodata、デバッガを使ってアドレスの中身を見る これをやれば余裕
>>244 つ「データ構造」―リンクリスト、スタック、キュー、木構造(二分木とかいろいろ)、ハッシュテーブル、ヒープソート、他には何があるかな‥‥
248 :
片山博文MZパンク ◆0lBZNi.Q7evd :2013/05/19(日) 16:46:38.26
ボットネットなんて本当のウイルスじゃないか。そんなもの作ったら吊し上げられちゃうよ
アセンブラをさわりだけでいいからやるといい 全てが数値で格納・表現されることと 間接メモリ参照がわかれば十分
ゼロ・キャリー・オーバーフロー・シフト・スタックへのプッシュポップとか
251 :
デフォルトの名無しさん :2013/05/19(日) 20:24:34.24
前にマクロについて質問したんですが for(i=0; i<=10; i++) の;が面倒臭いです。;は空白にできませんかね?
そんなに面倒くさいなら息をするのも止めたら?
だからそういうのが面倒ならCなんかやめとけって
他の言語でもみんなこんな感じだぞ
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です。」と言った感じの結果を表示させたいのですが中々上手く行きません… すみませんがご協力頂けると有難いです。よろしくお願いします。
>>257 病気ですね
初心者がよく罹ると言われている何でもマクロで短くしたくなる病です
他の人が読み辛く非常識である事が分かってくると治る事でしょう
フリーのコンパイラ何を使えばいい?
Visual C++ Express Edition GCC のどちらか環境に合わせて
>>260 コンパイラ自体としては今も昔も gcc が定番かな、clang の評価はどうですか?
個人的には sizeof(int)=8/sizeof(long)=16 のコンパイラがほしい、本来こうあるべきと思うんだが
2 or 4 のサイズの型がどちらか欠落してしまう
>>262 いつの時代だよwww
ビット幅を明示したいなら int8_t int16_t 使え
>>258 一般例に演繹する前に、たとえば 5 文字の "abcde" についてかんがえてみるのはどうでしょう?
char s[] = "abcde";
に対して、
s[0] <-> s[4]
s[1] <-> s[3]
‥‥
次に 6文字 "abcdef" について~
納得いかなかったら "abcdefg", "abcdefgh" 、あるいは逆に "abcd", "abc"~
最後に "a", "" について確認
文字列の最後にはナルキャラクタが必ず置かれているのを忘れずに
あ~私もいろいろと宿題をかかえていますけど困った困った
>>262 レジスタサイズとメモリ効率の
どちらをどのくらい優先するのが「自然」なのかは
意見の分かれる所
>>264 へえ
みんな clang 使ってるの?それとも新しいコンパイラがあるの?watcom とか?intel のやつってただで使えるの?
ビット幅を明治したいのではなくて int なら当たり前に64ビットであってほしい‥‥cygwin32 は LLP64 だし、MSVCRT のせいで %lld が使えないんだ‥‥
268 :
244 :2013/05/19(日) 21:36:45.04
スタック、ヒープ、セグメントって関数や変数の配置云々のやつ? デバッガは一応変数の中身を確認するためにgdbを使ったけどその延長? アセンブラのさわりってHacking:美しき策謀とか? 大学の図書館に5冊くらい入荷してたけど 質問多くでスマソ
269 :
デフォルトの名無しさん :2013/05/19(日) 21:37:28.85
intelは試用なら無料
さわり=曲のサビの事、転じて一番重要な所、要点
今時のアセンブラを勉強する本が皆無なのがねえ 古いのでいいならあるんだが
はじめて読む486が頭ひとつ抜けて良書だったのだが‥‥今では実行環境は構築できないだろうな‥‥
>>268 俺はHacking:美しき策謀で理解したけど
別に他のやつでもいいだろ
アセンブラやるなら別のでやれ
274 :
デフォルトの名無しさん :2013/05/19(日) 21:51:21.71
>>271 その点は、もうじき冬が明けると思っている
え、なぜ? 今日はいい天気だなあ
>>274 わくわく!nasm? masm32? gcc のインラインとか?
早くスクリプトキディからクラッカーになりたい
パスワード解析ソフトについてどう思います? パスゲッターとかいうソフトありますが。
違法です
パスワード解析技術って上がってるんですか? それが知りたい。
280 :
244 :2013/05/19(日) 22:05:10.93
>>273 わかりにくかったとか?
今から始めるとしてアセンブラに関しての良書とかオススメってある?
実際に動かさないので良ければ はじめて読む486でもいいんだけどね
アセンブラはやめとけオートマトンやるはめになるぞ。
>>278 解析自体は違法ではないと思っていたんだがこの前の著作件法はなんだあれ?
アセンブラ勉強して何になるの? 1と0の列見て楽しいか?もっと高級な機能や概念を習得するべき。
>>284 多バイト長演算をキャリーフラグチェックやローテートが使えない高級言語(Cを含む)で実装するのは無理筋
>>284 「何を行うとどういう仕組みで恐ろしい事が起きるか」
これを知ってると知ってないとじゃ大違い
aとbがNULLになるまでループを続けるにはどうすればいいか教えてください
aとbがNULLになるまでループを続ければいい
289 :
片山博文MZパンク ◆0lBZNi.Q7evd :2013/05/19(日) 23:07:53.73
>>287 (a == NULL && b == NULL)を終了条件式にしてループ
break死ね
bがNULLでない状態でaがNULLになって ぬるぽになって文句を言ってくるに一票
aとbは独立してるの?
#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; } この計算式を出力したいのですが動作が停止してしまいます。 分かる方おられないでしょうか?
y=1/sqrt(x); 0除算
せめてどの位置でコケているかを 自力で特定できるようにならないとツラいぞえ つ printf デバッグ
0除算で例外発動しても教えてくれないのはどうしたものか‥‥cygwin の bash はそうなんでちょっと困ってる
!(a==NULL && NULL)
!(a=NULL && b=NULL) NAND
304 :
258 :2013/05/20(月) 01:07:07.39
皆さん有難うございました。無事課題は完成しました!また何か有りましたら質問をさせて頂くかもしれませんがその時はよろしくお願いします。
(a == NULL && b == NULL) だと片方がNULLだと処理落ちしない?
>>305 >>289 のことか?
その式を「終了条件」とすれば、問題ない
while(1) {
…
if(a == NULL && b == NULL) break;
}
とか
while( ! (a == NULL && b == NULL) ) {
…
}
みたいに
}; ってメジャーなスタイル?
>>307 whileの終了の}とかだと、;をつけないと次の行に
gotoのラベルが書けない実装もあったりする。
なんてコンパイラ?
変なクセをつけると elseさんが泣いちゃうぞ
do { } while() なら末尾に ; 必須だけど ブロックの末尾 } とは違う話だしな。。。
構造体の末尾にセミコロンを付け忘れて、ん?となるのは今でもしょっちゅう
お前だけだよ
>>312 そういう価値がないうえに頭の悪さアピールするだけの日記を書くからウザがられるんだろ
コテ叩きに関してはコテのほうが悪いと言わざるを得ない
>>312 こんな自虐コメを書いておいて、いざ叩かれると「ID導入しろ」だもんな
説得力ゼロ
◆QZaw55cn4cクソコテ 他人のブログコメントまで出向くクソコテ
>>307 構造体とかの必須モノは置いとくとすれば、マイナーだろうね
マクロでの if-else 事故を減らす役割は期待できそうだけど
つけるとちょっと気持ち悪いような感じ
◆QZaw55cn4cクソコテ 他人のブログコメントまで出向くクソコテ
>>317 マクロは do { } while(0);で括れってQZが逝ってた
マクロなんか使うなカス
カスよりクズと言ったらいいかも
何で構造体{}の後ろは;が必要なのに 普通の{}ブロックの後ろは;はいらないの? これの理由が全然分らない。 分らなくてそれが悔しくて自殺を考え事もある。 何故だろう?
じゃあ死ねよ
>>323 構造体はブロックでも文ではないので、文にするために;が必要なんじゃなかったかな。
ブロックはそれだけで文なので;はいらない。
なんか変だな。 正確には、「ブロックでも文でもないから」だな。
>>325 何で?{}で終わったらその後にfor()がこようと、別に宣言しようと
{}で完結してるんだから;が無くても大丈夫でしょう?何故;をつける?
どんなトークンがこようと前の}以前に影響を与える事はない。
構造体の末尾の}カッコの後ろに、変数名を付けることが出来るようにするためだよ。
>>328 ちょっとまってくれ
それは違う
変数の後ろにaがつけば
a;でこれは文だ
#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; }
>>320 do { } while() で囲むのは判るが ; まで(マクロに)含めるのか?
>>327 めんどくさいなあ。
そういう文法だからだよ。
>>328 が言うようなケースもあるし。
矛盾なく混乱も起きない自信があって、更に何らかのメリットを説明できるなら、標準化委員会にでも入って自分で提案してみたら?
そういう文法だからはただの思考停止
>>328 で良いのに何で思考停止するのか分からん
>>334 それは違うんじゃね?
自分で調べないで、こんなところで聞いてるやつの方が思考停止だろ
思考停止ではないね。 そんなこと言ってたら、 何で文字列は""で、文字は''なんだろう?逆でもよくね? 何でブロックは{}で配列の添字は[]なんだろう?逆でもよくね? とかそういうことまで考えなければならなくなる。
そこまでの話じゃないだろ struct { int a; } b, *c; の b, *c とかを書けるような文法にしたら ; が必要になるのは必然だ 「b, *c とかを書けるような文法にしたのはなぜか」は「そうしたから」としか言えないが、 そう書けるようにするという条件で考えれば ; が必要になるのにはちゃんとした理由がある
ここで覚えたことを自分が言ったことみたいに言うなよw
340 :
デフォルトの名無しさん :2013/05/20(月) 23:59:26.36
>>337 だったら
struct{{int a;}b,*c}
でもいいんじゃない?
別にいいんじゃない
342 :
デフォルトの名無しさん :2013/05/21(火) 00:05:06.28
それにそんな書き方ができるなら for(i=0; i<=10; i++){a=3;}a; これも可能だろ?wwwwww
くだらねー
死ねよ無能はくだらね
346 :
デフォルトの名無しさん :2013/05/21(火) 00:15:58.99
>>344 あんまり死ねって言われるの嫌だから止めてくれ
そういうのは
>>336 実際そういうレベルの話をしているんだけどな
#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も符合なし整数なのに。なんでですか。
Cを書いたことない奴まで意味もわからずにはしゃいでるな
勇士Q
そいつ知ってる
◆QZaw55cn4c
ここまでQZの自演
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は、(以下略)
片山博文MZパンクは必要 弟子になりたい
357も片山の自作自演
>>347 セマンティックスと、シンタックスとの区別が付くように成ったら、またおいで。
360 :
片山博文MZパンク ◆0lBZNi.Q7evd :2013/05/21(火) 02:32:15.85
>>357 PayPalで二万円の授業料を払ってくれたら特別授業をしてあげるよ
361 :
デフォルトの名無しさん :2013/05/21(火) 04:05:18.02
宣伝は2chからガッツリ請求されるんだったよな
printfのフォーマットと引数の型を厳密にチェックするコンパイラってうざいよね longとintなんてLP64でもなきゃ同じなんだから いちいちl付けなくてもいいじゃん
そのうちlongが128になるかもな
QZと片山の自演を防ぐためにはIDが必要
びびってんか?
そういえばPerlスレが荒れてたから このスレを避難用と称してPerlスレに張ったら 荒らしがぴたっと止まったな
勝手な妄想すんな
>>249 乗算、除算をシフトを使って実装できたら卒業だろうね、乗算は上桁からと下桁からの二通りがつくれるね。
>>365 short int: 32bit, int:64bit, long int:128bit, long long int: そんなもんつくるな
っていうのがほしいな。いや int64_t とかがあるのは知ってるんだけれども
https://www.allbsd.org/~hrs/diary/201108.html] GPL 違反が判明し、それが示談として決着した場合、 その製品をつくっていた企業は、ソースコードを公開して同製品の販売を継続することは許されるだろうか。
「示談をして争点に決着がついたのだから、問題はない」と思いがちだが、 実は GPLv2 Section 4 によると、それは許されないという解釈が可能である。
その企業は、当該 GPL ソフトウェアの権利を「自動的に」失っており、 そのソフトウェアを使うことは許可されない。
GPL には、それを回復させる条件の記載がないので、 将来にわたっても回復することはない
>>374 回復の条項もない代わりに、再ライセンス禁止の条項もない。
ぶっちゃけ、ライセンス違反→はく奪、別ライセンスで開発→違反→
の無限ループが可能。
文字が青くなりクリックしたらそのサイトにとべるようにするにはどうしたらいいでしょうか?ご教授お願いします
(゚д゚)
AKBの板野とどっちがいい?
ハゲ板野
>>378-379 AKBの板野と比べてハゲ野郎の方がいいなんてキチガイですかぁ? ハゲ専ですかぁ?
おでんの具は何がいい? 俺はこんにゃく
牛すじ
質問ってここでしていい?
>>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()で出力
計算間違ってますか?スクリーン座標系なれてないので・・・・
なまたまご
なまむぎ
一番早く理解する方法教えてください。 お願いします。
5W1H
>>384 くわしく追ってないけど
point[i].x = で 座標変換後の x を入れてるけど
次行の y 成分を求める式中に point[i].x を参照してる。
一旦中間変数に代入した後 point[i] へ書き戻したら?
tmp.x = ...
tmp.y = ....
point[i] = tmp;
はじめての日本語
>>389 それですね・・・・
そりゃおかしいわけだw
徹底理解日本語
これならわかる日本語
日本語ポケットリファレンス
完全マスター日本語
2chをみているとレスの中に例えば「★初心者以前の質問に雪崩のように答えるスレ★」と青の文字でかかれていて
URLはどこにも書かれていないのに、その青い文字をクリックすると「★初心者以前の質問に雪崩のように答えるスレ★」にいけるようになっている場合があります。
どうすれば「ABC」青文字で書かれていてその文字をクリックすると「ABCのページ」に行けるようになるのでしょうか?
例で言えば
http://desktop2ch.tv/utu/1367764194/の >>1 の「[test]書き込みテスト 専用スレッド596[テスト] 」のようにURLなしでそのサイトに行けるようにしたいのです。よろしくお願いします
呼び出し元の関数のアドレスを、呼び出し先の関数で得る方法ってありませんか? 下記のコードでは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 */
>>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;
}
>>397 環境依存でいいならCPUのSPから呼び出しもとのアドレスを抽出できるけど、
それ自体は関数ポインタではないから関数ポインタを別途取得して比較しないといけない。
大人しく渡すしかないよ。
x≦系圭 \ ,ィ升圭圭圭圭ハ ⌒ト、 {圭圭圭圭圭圭.i}.圭圭\ ヽ i i l l l l l l l l l l l i / 入圭圭圭圭圭ヌ圭圭圭ハ 二 ,ィK圭>≠=-≦ 圭圭圭圭ハ 二 i圭圭圭圭圭圭圭圭圭圭圭. い 二 |圭圭圭圭圭圭圭圭圭圭圭圭ハ 二 早く、日本に |圭圭圭圭圭圭圭ヲ⌒マ/圭「⌒! 二 {圭圭圭圭圭>!ヽ Y マ圭し | 二 Ⅴ´_ _ r1┤ l ト. マ/{ jメ.从\ 二 帰りたい ∨ y ノ´ ! | | l| l | | Nハ⌒´ 二 l / /l| | :| | ! j .| | Ⅵ:| .二. l | | | | ; ト、 i Ⅶ 二 /| ! ! !.从 ヽ ! .N 二 / ∧. N \ . 从 リ ∨ // ! ! ! l l l l l l l l l l ! ヽ | / ∧ |\ / ∧_ノ ∨ | / / ∧ | \ }/ / / l| | / / ∧ !  ̄ ! !_ // j| | / / / } .l | |_ / .' |⌒ \ / リ | | , ' / ∧ / / | ∨ . / / / ∧ / /| ! ∨ / /
>>397 gcc なら __builtin_return_address 関数で呼出し元のアドレスが得られるので、
コンパイル時に -Map オプションでマップを吐かせておいたのと比較して呼出し元関数のアドレスを得ることが出来る可能性がある。
でも、強力に最適化させるとインライン化されたりして関数という単位が維持されない可能性もあるので、
ソースコード上で陽にポインタを受渡す方が期待する結果を得易いのは確か。
402 :
397 :2013/05/24(金) 01:50:53.39
403 :
デフォルトの名無しさん :2013/05/25(土) 03:03:19.38
変数のサイズが環境によって違う場合があるってのは 実行環境によって違う場合があるってこと? コンパイル環境によって違う場合があるってこと? 環境はWindowsXP以降(32bit/64bit両方含む)限定でお願いします
>ポインタを使ったほうが処理が速いの? ソート処理などのとき、実体を入れ替えるより、ポインタを操作で実現する方が速いでしょうね。 >変数のサイズが環境によって違う場合があるってのは >実行環境によって違う場合があるってこと? >コンパイル環境によって違う場合があるってこと? 変数のサイズはコンパイラが決めます。 通常はターゲットとされるOSに合わせてコンパイラを選びます。 ただ、最近の64bitのWindowsなら、32bitコンパイラで作ったプログラムでも 動作します(古いWindows64bitだと無理だった気がします)。
型のサイズはコンパイラによって決まるけど 実行環境に都合のいい妥当なサイズを選択するとなると、 そんなに選択肢は多くはないよな。 主要なコンパイラに追従するのもよくあることだし。
> 動作します(古いWindows64bitだと無理だった気がします)。 これどの64bit Windowsのこと? Itaniumはそもそもx86との互換性が怪しかったはずだけど。 XP64bit以降はドライバはともかくアプリの互換性はほぼ問題ない レベルだったはず。
64な今でもwinはint=int32_tに設定しているし、win64のapiってどうなってるの?
>>407 それは LLP64 というモデルだね。
実際のところ広い (64ビット幅の) メモリ空間が欲しいことはあっても、
大きい数値 (64ビット幅の int) が必要ということはそれほどないという現実があるので。
プログラム中で使われる「数値」の内、
30ビット幅以下で表わせるものが95%を占めるという検証結果もある。
http://people.csail.mit.edu/jaffer/CNS/DIMPA だから Win64 の API は int が 32 ビットで、ポインタが 64 ビットに拡張されたものってことだよ。
>>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
ここだけわかった他は珍文.漢文
>>408 そりゃ小さい値の方が使用頻度は高いだろうけど、稀にでも大きな値を使うことが
あるのなら、そちらにあわせる必要があるだろうね
いちいち判定文を入れるとかやってられないし・・
411 :
デフォルトの名無しさん :2013/05/25(土) 13:13:20.64
| ├──┤ | | ├──┤ | | ├──┤ | | ├──┤ | | ├──┤ | | ├──┤ | | ├──┤ | | ├──‐/⌒`\ ,∠-―.、─‐γ´ \ ( l ̄))-/フ ,ノ/ \__ ,>ー‐三、( ̄__,ノ | ( l ))  ̄‐┤ ト >―‐.三、──┤ | ( .l ))──┤ | `>ニ二、 ──┤ | ( l_))──┤ |___,/ ̄ ̄ ̄ `ー-―'. ──┤ | | ├──┤ | | ├──┤ | | ├──┤ | | ├──┤ | | ├──┤ | | ├──┤ |
>>411 なんじゃ?そりゃ。ゴワサンのスマッシュ暗算か?
スタックだな
int a[10]; a=
a={1,2,3,4};ってやったらエラーがでるんですが何故でしょうか?教えてください
脳が足りない
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};
>>418 理解できません
structってなんですか?typedefってなんですか?
>>414-415 int a[10]={1,2,3,4};
int a[10];
a={1,2,3,4};
この2つは構文の種類が違う
初期化子について詳しく書いてある入門書なりサイトなり見るとよい
補足 前者は宣言+初期化 後者は宣言+代入
>>421 int a[10];
a={1,2,3,4};
こんなこと、できました?
初期化以外の代入で集合 { } が使えるのは C90から?
日本語が変だったな 初期化以外で集合 { } が使えるのは 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 }; みたいなの
よくわかりません
>>424 C99やgccでも採用されてません。
どこかの独自のCでしょう。
>>426 あら。 勘違いだったか。
ちょっと便利そうだけど俺の使ってる環境じゃ対応してないしなー と感想持った何かは別言語だったのだろう
>>415 のようなことをしたい場合は、
ループ作って、一つずつ代入しないといけなかったと思う。
そういう環境依存のガラパゴス仕様を教える専門学校いらんw
>>429 正しい情報ありがとう。
知りたい情報があるとき、それを否定する嘘情報を自信満々を装って
書き込みすると、誰かがソース付きで説明してくれるのでいつも助かってます。
ううううううううううううあああああああわかりません
>>434 >>429 のリンク先の用例でも関数の引数としての複合リテラルの使い方しか記述されていないでしょ?
リテラルって何ですか?
>>436 ここに書いたその文字列を、googleの検索窓に書いてみろ。
それが自己顕示欲だ
>>437 知らないなら黙っていてください。
あなたがgoogleの検索窓に書けばいいんですよ。
441 :
440 :2013/05/26(日) 18:22:22.10
名前は間違いです。ゲーム専門学校ではありません。 前になりすまそうとしてた時のものが残ったままでした。 すいません。
以後気をつけましょう
自演がばれた瞬間
444 :
440 :2013/05/26(日) 19:19:12.12
わたしは自演のウンコ、ゲーム専門学校です
447 :
デフォルトの名無しさん :2013/05/26(日) 21:00:14.43
入門書はこれ書いて欲しい。書いてない本大杉。 宣言時に使うポインタ演算子「*」と間接参照演算子「*」とは完全に別モノだと捉えよう! C言語のポインタがゼッタイにわかる本 最初からそう教えてくれればいいのに! 120ページより
>>447 よーく思い出すと、一番最初にそれに躓いた覚え俺にもあるわw
「ひとまずカンケーないんだ」と感付いてから開けたわw
関係有るだろアホかお前ら?
全くの別物だぞ 関係はない char *p; とか書いてるアホは関係あるように錯覚してるのかもしれないが
全く別物だけど、関係が全く無いわけじゃない
なら char* a,b,c; って宣言させろや
char *p;と書く奴はアホ扱いできても、char *p, *q;と書いてる奴には何も言えないはずだ
typedef char *charPtr; charPtr a, b, c; と書けばいいですがな
ポインタ演算子の「*」は、「*」をつけることでポインタとなる。 間接参照演算子の「*」は、「*」をつけることで、ポインタから変数そのものになる。
ポインタはアドレスを格納している変数
ポインタってなんなんでしょうか? アドレスを格納するってあるんですが アドレスってなんですか?
アドレスっていうのがわかりません アドレスは番号なんですが どうやってみるんでしょうか? 中身をみるやりかたしってますか?
素朴なぎもんですが、ポインタ演算子なんて言葉あるの?
だめだこりゃ
ポインタをなんとなく使ってきた人って多いんだな
あるでしょ。
構造体の~って感じで枕詞が付くかもしれないけど。
>>455 はちょっと違う気がする。。。
int *p; pはアドレスを格納する変数で、*pとすることでそのアドレスに格納されている値にアクセスできますよ、ということ
お前ら違う気がするとか違うと言うなら、正しいケースも書いてくれ。
>>453 char* p;
char* q;
と書けよ
>>466 自分のコードならそうしておけば問題ないが
それに慣れ過ぎちゃうと、他人のコードが罠になる気がする
自分で char *p, *q; と書かないだけで 重々理解はしてるから問題ない
アドレスっていうのがわかりません アドレスは番号なんですが どうやってみるんでしょうか? 中身をみるやりかたしってますか?
無能ゲーム専門 だめだこりゃお
入門書に書いてあんだろ 入門書読めよ
>>470 int i=0; printf("%p",&i);
正確には void* にキャストしないといけなかったような
gcc4 はそういって怒る
そういやsizeof(void *)とsizeof(int *)が = とは限らないというのは なんでだったっけ?
そういう環境があるからとしか
型ごとにアドレス空間が違う実装があるってこと? void *はその最大を扱うと。
特定のアラインでのメモリアクセスしか出来ないアーキテクチャがある。 4バイトサイズのデータの読み出しには4で割り切れるアドレスからしか読み出せないとかいったような。 そういうアーキテクチャでは2バイトのデータの後に4バイトのデータを配置すると2バイトの詰め物を置くことになって無駄じゃん。 型ごとに違う領域に配置するのが合理的な場合は有り得ると思う。 知らんけど。
>>476 sizeof(void *) ではなく sizeof(void (*)()) ということであれば、これと sizeof(int *) が違う環境なら現存していてしかも実は私達(の一部)にとってもおなじみだったんです。
プログラミングに関してもっとアットホームなコミュニティーがあってもいいと思うし誰かWeb出来る人つくってよ
ある関数で 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アドレスですか? ポインタは破棄されるタイミングがよくわからないので
それ、破棄されてないよ。いわゆるひとつのメモリーリーク。
スマポが使えないからCのmalloc()は怖いな
むしろローカル変数への参照を 呼び出し元へ返してる疑惑
その関数は int ** func(); なのだろうか
>>480 関数ポインタはvoid*につっこめねえから関係ねえ
引数にint* res[2]のポインタを渡して入れてもらった方がいいんじゃね? void func(int **res[2])
>>489 a,bは無効になるが、a,bに格納されているmallocで確保したアドレスは
freeするまで有効。その意味ではres[0], res[1]の値は呼び元でも有効だが、
そのコードの問題はresはその関数を抜けると無効になってしまう
だから結局はダメ、というか保障はない
>>491 なるほど、だったらstaticにしたりでも対策できそうですね
>>490 このやり方でやってみようと思います
そういやC言語をやり始めた頃は俺もこういうパズルみたいなプログラムを わざと書いて楽しんでたな 今じゃC++でshared_ptrもしくはptr_vector おっとスレ違いだ
C++とCの違いはなんですか?
英語読めません 日本で教えて下さい
プログラミングを本格的にやるなら、英語くらい読めたほうがいいんじゃないの?
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; }; このような感じで、それぞれの構造体を入れ子にすることは出来ないのですか?
struct A{ struct B sikaku; }; struct B{ struct A batu; }; こうですか?
構造体の本体を持ち合うのは無理 構造体のポインタを持ち合うのは可能 struct B { struct A *batu; }; struct A { struct B *batu; };
503 :
499 :2013/05/28(火) 18:53:57.81
構造体のポインタをメンバとして持つ場合は、その構造体が先に宣言されていなくても使えるのでしょうか?、 そこらへんが、調べても出てきませんでした
この構造体はこういうメンバを持っています っていう定義が無くても良いよ 線形リストなんかも ほぼそれな書式でしょ? struct A { struct A * next; /* ←ここを解釈する段階では struct A の定義が全て終わってるわけじゃない */ int val; }; なんか知らんけど構造体のポインタを保持するための器を用意できればいいんだ ってわけ
struct A; struct B;
サイズがわかればいいんですね。 じゃあ sizeof(strct B) = 100; struct A{ struct B sikaku; }; はオッケーですよね。
ううううううううううううううううううううううううううううううううううううううううううううううううううううあああああああああああああああああああああああああああああああああ
>>506 こうすればいい。
struct A;
struct B;
struct A {
struct B* pb;
};
struct B {
struct A* pa;
};
ポインタはサイズが4バイトで単にアドレスを格納するだけの馬鹿だからな
ILP32環境ならYes
ttp://avjavjav.com 俺のポインタの認識。
宣言文中で変数名の前に*を付けたらポインタ宣言完了。
本文で使用するポインタ演算子は*(逆参照演算子)と&(アドレス演算子)。
例えば、以下の変数とポインタを定義する。
int num;
int *num_ptr;
numはただのオブジェクト。変数。こいつにポインタ演算子である&をつけると、
オブジェクトのアドレスを返すようになる。
num_ptrはポインタなので、アドレスを指せる。指せるだけである。AVを見ているだけ状態。
AV女優本人と本番はできない。指すだけではなく、操作をするのであれば、逆参照をつけて、
*num_ptrとすればポインタが指しているオブジェクトを操作することができる。
宣言文中で*をつけるとポインタ化し、本文中で*をつけると逆参照してオブジェクトをいじれる。
(*hogeptr).hogehoge hogeptr->hogehoge
ポインタは足し算引き算できるのも強みだよ(void*を除く)
ダブルポインタの場合の認識は
AVで示すとかどんだけガラパゴスでわかりづらいんだよ 俺だったらNARUTOだな
int a[] = {0, 1}; これは許されるのに const int ipa = (int)&a[0]; これはダメなんだなあ const short spa = (short)&a[0]; どうにかshortにできないもんか
ポインタを整数化するのに short ?
ポインタは32ビットのアドレスを格納する変数 shortは16ビットの変数
>>483 あたりからずっとレベルが低空飛行してるが大丈夫か?
ここ子供ばっかか? オッサンはおらんのか?
>>518 なんでポインタが32bitなんだよ無恥。
16bitだよな!
ポインタはILP32環境なら32bitだけど環境によってサイズは変わる。
>>521 aのポインタの下位2バイトでconst shortを初期化したい
int a[] = {0, 1}; static const void*center=&a[0]; const short spa = (signed)center-(signed)&a[0];
コンパイラは(int)&a[0];はconstだけど(short)&a[0];はconstじゃないって言ってる サイズ変わるキャストは演算なんだろうか gccとMSのしか試してないが
>>525 intptr_t にキャストしてから short にキャストしる
環境によるけど32bit環境ならshortにキャストしたら元の値が 失われる。
>>528 intptr_tだろうがintだろうがキャストじゃダメみたい
shortとconst shortは違う型だし。
だめじゃないだろう 何を言ってるのか
533 :
デフォルトの名無しさん :2013/05/29(水) 22:04:22.25
ゲー専ってまだいたのか
ゲーム専門(笑)
uintってなんですか? そんな型調べてもでてこないんですがなんなんでしょうか?
お前がうんこだから
>>535 unsigned intの略称で使われてることが多い
大抵どっかでtypedefしてある
ゲー専はちったあググるということを覚えろよ
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
ググるってどういうことですか?
うんこー
さて誰が本物でしょう?
544 :
ゲーム専門学校 :2013/05/30(木) 16:12:53.35
なりすましはやめてください!
ゲー専 デブ専 ブス専
自己顕示欲 ボソッ
547 :
ゲーム専門学校◇9Ce54OonTI :2013/05/30(木) 16:32:57.57
なりすまし超ウザいんだけど 一度死んでくれない?
これはひどい
ううううううううううううううううううううううううううううううううううううううううううううううううううううあああああああああああああああああああああああああああああああああ
ゲーセンがかわいそう いじめないであげて
552 :
ゲームセンター :2013/05/30(木) 17:16:26.25
あなたの願い事は何ですか?
竜宮城へ行って楽しく暮らすことです
人類が滅びる事です そしてその時は近いでしょう
てす
C言語マスターってマスターの基準ってどのくらい?
規格票が諳んじれるくらい
マスターがスマタに見えた。 そういうことよくあるよね。
規格諳んじたって実装できなきゃマスターでも何でもない
自己参照型構造体を使ったリストの操作関数を一通り何も見ずにすらすら実装できるレベル
それは社内研修終わった新人レベルだろ
どんなマイナーな仕様もすぐに出てくるレベル
剥げてる事
>自己参照型構造体を使った… 一瞬ナニソレと思ったが、連結リストか 研修前にそれくらい出来てて欲しいような…
>>560 双方向リストとか紙に矢印とか書きながらじゃないと実装できないわ。
ゲー専は無能だからな
一方ノイマンは頭の中のホワイトボードに書き込んだ
お前らはノイマンじゃない
570 :
デフォルトの名無しさん :2013/05/31(金) 15:22:09.13
ゲー専はいらない よくゲー専なんかに金と時間使おうと思うよな 行こうと思う本人も本人だけど学費出す親も親 キチガイ一家
チューリングなら磁気テープを使う
xy平面状に2つの円があって、2つの円の中心の座標と半径は分かっています。 この場合に、2つの円の2つの共通接線の接点の4点の座標を求めたいのですが、どうしたらいいですか。 指針だけでも教えていただけませんでしょうか困ってます。
あ、この場合の接線は2円の間でクロスする場合は除きます。
>>573 そこをなんとか。私はもう寝ますんでよろしくお願いします。
576 :
デフォルトの名無しさん :2013/06/01(土) 01:38:10.94
>>575 指針出せって言うから出してんじゃん
高校数学の教科書読めば解決するって分かってるのに何で読まないの?
高校生じゃなくても教科書相当の参考書なら買えるよね?
近所に本屋なくてもアマゾンで買えるよね?
www.phoenix-c.or.jp/~tokioka/2circle/2circle.html
辛いなら貼らなくていいよ 何その辛いアピール 「辛いのに貼ってるぼく頑張ってるでしょ」って?
580 :
デフォルトの名無しさん :2013/06/01(土) 04:24:46.26
自己顕示欲を満たすほうが優先なんだろ。
581 :
デフォルトの名無しさん :2013/06/01(土) 07:41:57.78
ここって、プログラム板のC言語に関してのページだったよね? ま、いいや 上のレスのスマホのブレウザがどーのこーの言ってるけど スマフォ用のブラウザも色々あるが そいつらが、htmlの奪い合いしまくってんっだよ プログラム板なんだから、そーいう情報もあたまにいれとけっつーの
まだできてねえのかw役に立たねえ2chのクズ共がw ちなみに2円の半径は同じ場合だけを考慮したらいいです。 どうぞよろしくお願い致します。
馬鹿には教えても無駄
585 :
片山博文MZパンク ◆0lBZNi.Q7evd :2013/06/01(土) 09:41:27.70
直角三角形 相似 辺の比
馬鹿無能高卒ニート、ゲーム専門じゃ無理
587 :
デフォルトの名無しさん :2013/06/01(土) 10:16:27.96
>>582 一言だけでの突っ込みを入れると
「おまえは、メイド喫茶のツンデレか!!」
一行目にはクズ共がってツンツンして
最後にどうぞよろしくお願い致します。
って最後にデレっとしやがって。
それともビリーミリガンの良い方のビリーミリガンと悪い方のビリーミリガン
が、秒単位でいれかわってんのか!!
ま、どっちにしても、宿題ページで質問するのがベストなんじゃない?
問題文を自分なりに書いて。
あと、最近2chあんま見る事すくなってきたんだけどゲー専っていったいどういう意味なん?
だれか教えて
> あと、最近2chあんま見る事すくなってきたんだけどゲー専っていったいどういう意味なん? > だれか教えて それをこの場で説明するのは非常に難しい 専門学校へ行って教わるのが吉
589 :
587 :2013/06/01(土) 12:09:25.01
>>588 何の専門学校へ行けゆーねん。
よけーにわからへんわ!!
ゲイ専門の略 ゲームセンターの略
ゲー専=ゲーム専門学校、ゲーム専門学校生の略 大概の奴はやる気が無く他力本願でレベルも低い、らしい
>>592 C言語マスターしたとわめいてるわりにアセンブラもわからずしょっぼいゲームをUnity本見ながら作って喜んでる無能ゆとり連中
4gamer記事を鵜呑みにして脳味噌洗脳されてる哀れなゴミカモ
「プログラマ最強説、インディーズゲーム最強説」を唱えるやつがいたらほぼゲーム専門
大手ゲーム会社が作るビッグタイトルには金や技術力で勝てない
ではどうするかインディーズを持ち上げることで
自分たちの同人(インディーズ)の評価をあげ売り上げを伸ばそうと必死
売り上げ=ソーシャル以下 ゲームの技術力+面白さ=ビッグタイトル以下 ましてテラリア、マインクラフトレベルでもないクソゲーで何がインディーズゲームとかいっちゃってんだろうなw ハーーーーーーーーWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
でもテトリスは面白いとおもうの
QZさんって有償モリタポでどのくらい儲けてるの? 課題とかやってあげてるんでしょ?
>>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]) のそれぞれの違いを誰か解説して下さい・・・
>>599 bはやるんなら b[2]じゃなくてb[N]じゃないかと。
ポインタの理解のために美しき策謀読んでるんだけど、これって読むだけでもポインタの理解には十分?それともgdbとかアセンブリ言語の部分のサンプルも実際に自分でやってみた方がいい?
通信教育の空手?
美しき策謀はC言語理解しないと読めないだろ ましてポインタすら理解してない無能が読んでも理解できない
>>603 C言語はある程度わかる
ただ大学でやるポインタの演習がしっくりこないからどうかな、っていう
ポインタはアドレスってことと参照渡しと値渡しの違いくらいしかわからん
素直にポインタ解説本読んどいたほうがいい?
>>604 ちょwww
ポインタがしっくりこないとか言ってる状態で「C言語はある程度わかる」とか言っちゃえる自信はどっからくるんだよ。
それはさっぱり分かってないと言うのじゃ
>>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
>>605 いやだから本当に入門者の「ある程度」なんだって
謙遜の「ある程度」じゃなくて
ifとかforとか自作関数の定義くらいまでで
入門者用のスレだから聞いたのに...
>>607 気にすんなし。こんなスレで入門者を叩きたいような奴が、
どんなレベルの奴かは、まぁ分かってやってくれ。
ポインタなんて宣言がややこしいくらいのもんだから、
大げさに言う奴がいても無視して事務的に覚えたらいい。
>>605 そうしたほうがいい
でも余計混乱しないようにしろよ
> ポインタの理解のために美しき策謀読んでるんだけど、これって読むだけでもポインタの理解には十分?
> gdbとかアセンブリ言語の部分のサンプルも実際に自分で
レベルに全く合ってない。やめとけ
ポインタ難しいのはC言語のチャチな機能を補うための工夫や
裏技を使うための抜け穴として使われるから
わかってない奴が
>>608 みたいなことを言っても信じてはダメだ
書式的ややこしさ(配列や const、関数ポインタ と複合すると) 機能的、概念的ややこしさ 両方兼ね備えてるからな
自称プロは大げさに言って脅かすもんだよ。 そうやって自分のポジションを守ってるんだよ。
>>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┃
┗━┷━┷━┻━┷━┷━┻━┷━┷━┛
こりゃいかんな。2ちゃんねる貼り付け機能もつけるべきか。。。
使うのは一桁の数値だけやし、 9×9は固定なんだから罫線はいらんやろ。 こういう表示で充分や。 145327698 839654127 672918543 496185372 218473956 753296481 367542819 984761235 521839764
┏━┯━┯━┳━┯━┯━┳━┯━┯━┓ ┃ 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┃ ┗━┷━┷━┻━┷━┷━┻━┷━┷━┛
解けたということは、バックトラックかw ソルバーじゃ解けないんだよなぁ。
覚えた言葉を使いたがるのは分かるけど支離滅裂だなwww
ソルバーなんか近似曲線引くときくらいしか使わないよ
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]) は同じなんでしょうか?それとも違う?
質問ばかりですいません・・・ この辺の事を易しく解説しているサイトとかあれば教えて下さい。
struct { int *a; } b[2]; "ポインタが要素"の配列 struct { int a[2]; } *c; "配列が要素"のポインタ
C言語はポインタと配列が混ざると、頭の中でイメージと一致するまでしばらく混乱するんだよな 頭の中で絵が描けるようになれば理解できる 無理ならtypedefで分解しろ そのうち理解できる
623 :
デフォルトの名無しさん :2013/06/03(月) 17:41:21.18
配列に*をつける事ってまずないんじゃないですか? *a[3]とかってする時ありますかね? 見たことないんですが
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];ってしたら ポインタのポインタって意味じゃね? 配列自体がポインタだから
>>623 char *s = "abcde";
char *p[10]; // ポインタの配列
a[3] = &s[2];
printf("%c\n", *a[3]); // => 'c'
ってこと?
間違い。 char *p[10]; // ポインタの配列 ↓ char *a[10]; // ポインタの配列
>>626 その宣言で b++ はエラーになる
配列なのかポインタなのかを区別してるよ。 (ただし関数の引数での宣言は除く)
>>623 int main(int argc, char *argv[])
>>630 sizeof もとろうぜー
ポインタの配列は、ポインタの指してる先の要素数が歪な確保もできるし、ヌルポもおける
int *a[3];
a[0] = (int*)malloc(sizeof(int) * 1);
a[1] = NULL;
a[2] = (int*)malloc(sizeof(int) * 100);
ポインタのポインタって実質何層くらいまで実用的なの? n重ポインタみたいな形にできないってことは せいぜいポインタのポインタのポインタくらいまでしか実用的 じゃないってことかな?int ******c;とか見たことないし
じゃあ使わなきゃいいじゃん
**までは普通に見る ***からはそうそうない
637 :
デフォルトの名無しさん :2013/06/03(月) 20:20:52.35
宣言と使うときに乗算の演算子を使うのが混乱のもとだよなー 素直にpointerとか予約語に入れればよかったのに
長い
てか@でいいんじゃね? @は何で使われないんだろう
目の付け所で#は? 違うかw
char array[10][10]; char (*p)[10]; p = &(array[0][0]); p[0][0] = 0; /* a[0][0] = 0 */ こういうことがしたいの?
>>637 アセンブリ言語みたいにポインタを[ ]で囲う表記にしてほしかった。
宣言はint [p];とかにしてくれば分かりやすかった気がするが、
・・・気のせいか。
results = funcA() | funcB() | funcC(); このfuncA,funcB ,funcCが実行される順番ってA→B→Cですか?
>>630 余計わけが分からん。
そもそも int (*)[2] ってなんやねん!
>>645 順番は不定
funcA() || funcB() || funcC() ならその順番だけど
true が出てきた時点で以降は実行されない
全部がその順番で実行されてかつその論理和が欲しいのなら
個別に実行してあとで論理和を取るしか無い
>>647 ポインタを宣言するには、変数名の前に * を付ける
これが大前提の文法
でも int *b[2]; とすると int* の配列になってしまうから
仕方が無いので括弧で無理矢理区切って int (*b)[2]; になる
ただそれだけ
> 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 *)
>>650 そんな気持ち悪い宣言はC#でも見ないな
まあC#はポインタが隠蔽されていて参照になってるけど中身は同じ事だ
[]を前に持って行ったのは良い事だしジャグ配列が使えるんでポインタ配列
で悩む事はなくなった
でも a = b; とやるとコピーにならないのは最初びっくりするけどな
あ、スレ違いか
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言語は無理です。諦めました・・・
C言語のポインタとカッコと[]と関数の区別が難しいのは、演算子の優先順位があるから ここをもう少し整理して設計すればこんなに難しくならなかったはず しかし今更変えようがない 要は慣れ
それなりに長く使っている人でもよくわかってないことはよくある。 ごちゃごちゃ書くより typedef で回り道しながら定義してなんとかするもの。
655 :
デフォルトの名無しさん :2013/06/04(火) 10:33:56.33
この問題の元凶はたった1つ * だけが単項で、[] と () は後置であること * に相当する後置または [] () に相当する前置があれば解決する 実は * に相当する後置は大昔からあるんだが C99 も C11 もいらんものばかりごてごて増やすくせに こういうところは気が利いていない
>>651 それはC/C++ でもできること、というか、Java や c# と同じことを C/C++ でやりたいのなら「ごしごしと自分でそう書かなければならない」
>>657 言いたいことはわかる…。#defineを使えってことだろ?
えっ?
typedefを使わないと理解できないのは頭が固い証拠
固かろうと肩こりだろうと戦った者が勝ちだ
などど意味不明な言葉を発しており
自分の言語で自分のコンパイラ作れない言語ってあるんですか? CはCでCコンパイラ作れるって聞きましたけど ほとんどは作れるんですか?
ファイル出力ができる言語ならどれでも作れるっしょ
COBOLはどうなんだろう
COBOLは無理かもw
667 :
デフォルトの名無しさん :2013/06/04(火) 16:42:22.35
既存の配列を全てポインタでリストにする方法ってありますか? 例えば元々 int l[100];として l[0]=34; l[1]=-23;...................l[101]=76; みたいな感じなのを 34→-23→..................→76 と繋ぐようなデータ構造にしたいんですが どうやればいいですか?
669 :
デフォルトの名無しさん :2013/06/04(火) 17:41:10.45
だから、そうしろ できなければ土方を雇え 雇う金がなければ諦めろ
>>670 単なるリストじゃなくて配列のリストです
>>673 結論だけじゃ不親切だったかな。 副作用完了点 (sequence point) でググれば理屈がわかると思う。
>>645 の例で言えば副作用完了点は完全式の終わり (つまりはセミコロンのところ) になるので、
みっつの関数の副作用は少なくとも完全式の終わりの段階では完了しているということだけが保証されている。
>>671 struct foo {
struct foo *next;
/* ここをなんとかしたい */ a;
} *p;
....
p の隣は p->next で手繰る ここまではリストで要素の詰め物
p->a が
配列になってれば良いのか?
ポインタで良いのか?(指してる先は元配列の1要素)
整数値なのか? (値は元の配列から複写)
>>675 ありがとうございます。
ただ->は分りにくいので.でいいですか?
->の方が次って感じが出て分りやすいんじゃないか
(*p).next の方が分かりにくいだろ
p->next (*p).next アセンブラレベルで同じになるの? それともこっちが速い、コードサイズ小さいとか違いが出るの?
やってみれば分かるんじゃない? そもそもコンパイラ依存だし
682 :
デフォルトの名無しさん :2013/06/04(火) 22:18:11.53
ふーん、P でも N でもなく、か・・
かといってCでもないし‥
>>679 C++なら->や*がオーバーロードされていたら違いが出る可能性があるが
ここはCスレなので同じという答えになる
685 :
デフォルトの名無しさん :2013/06/05(水) 00:21:41.47
可能性ねえよアフォ
>>685 可能性がないようにオーバーロードするのが正しいのは確かだけど
所詮はプログラマの裁量なんだよね
言語仕様は保証してくれない
例えば片方だけデバッグログ埋め込むとかあり得る話
何も信じられないね 人間不振になるね
生きていればそのうちいいこともあるさ
690 :
デフォルトの名無しさん :2013/06/05(水) 16:22:21.86
プログラミングそのもので幸せにはなれないが、 プログラミングにより幸せになるチャンスを作ることはできる。 プログラミングを行って複雑で時間のかかる計算処理をプログラムに任せることにより、 本来その計算処理に使う時間からプログラミングに費やした時間を差し引いた分が余暇となる。 その余暇を使って精神衛生によい行いをしたり、教養を身に付けたりすることにより 幸せになるチャンスが生まれる。
余暇にならねえよ より高度で頭を悩ます雑用を押し付けられるだけ 科学技術が発達して現代人の残業時間減ったか? 逆に増えてるじゃねえか 搾取する側がもうけただけ 馬鹿馬鹿しい
客先常駐で偉そうな客先社員に見下されて何の経験にもならない雑用を押し付けられて時間を無駄にした上に精神病むのがオチw 常駐先企業の人件費抑制に利用されただけの人生だったな残念w
693 :
デフォルトの名無しさん :2013/06/05(水) 19:57:30.43
>>690 否定はしないが、全く別種の人類だな
プログラミングそのものが幸せな人がいたり、
数学そのものが大好きな人もいる
おまえも時間そのものが幸せなわけではあるまい
子供部屋でのママのご飯とオナニーの時間がそんなに好きなのか?
週刊誌や東スポの教えを教養とは俺は思わないぜ
教養ってそもそも何だと思う? 本質的に
プログラミングやってると問題解決能力だけは鍛えられる
プログラミングをしていると性格が歪んでくる
プログラミングやってると精神異常になる プログラミングやっている奴って成りすまし片山みたいな軽度精神異常って少なく 普通のプは江東区で女をばらばらにしてトイレに捨てた奴レベルの精神異常だし
板違いのたわごとを延々と垂れ流す基地外のことだな
>>694 問題解決能力があがるとストレスも溜まりにくくなるよな
複雑な詳細の書類も苦無く読めるようになる
結果として精神にとってプラスなんだよなプログラミングは
問題解決能力って、グぐてコピペすること?
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には突っ込まないでください。
>>700 保証はエンバカに聞いてくれ
不安ならフィールドごとに読み書きすればいいと思うけど
pragma packとかで変なことしてなくて、fopenでbつけとけば
思ったとおりに動くと思うよ
>>700 コンパイラ変えたりバージョンアップしたら動かなくなる可能性がある。
ひょっとして、これって32bit環境で書き出して64bit環境で読み込んだらずれるとかそういう話?
すごく初心者な質問なんだけど、reallocって関数の動作がちょっと分からないんだ 現在確保してる領域をコピって新しく確保した領域にブチ込んで元あった領域は開放、新しく確保した領域を返す関数って認識でおk?
おk
>>705 大体あってる
失敗したら開放せずにNULL返す
>>699 原因の切り分けとか物事の解決へのアプローチとか
>>698 >複雑な詳細の書類も苦無く読めるようになる
書類の出来の悪さに気付いてしまうという罠も。
710 :
デフォルトの名無しさん :2013/06/06(木) 23:05:12.62
質問です (byte And 0xf0) >> 4とはどういう意味なのでしょうか? 普段Cを使ってないのですがCで書かれたプログラムにこれが出てきたので教えて欲しいです 0x2Fが2となるようなんですが
>>709 あるある
なんでこんな分かりにくい書き方なんだよって嘆くことが多くなった
>>710 その変数byte、名前からも8ビットだろうけど、0xf0とマスクすることで
上位4ビット抽出、その後シフトして下位4ビットに移動。
組み込み系で使う。
>>710 それCか?例えば
(0x2F & 0xf0) >> 4
なら
0x2F & 0xf0 が 0x20となって
0x20 >> 4 が 0x02 となる。
詳しくはビット演算で検索。
でもシフトで下位4ビット消えるからANDするする必要ないよな。
715 :
デフォルトの名無しさん :2013/06/06(木) 23:19:47.86
716 :
デフォルトの名無しさん :2013/06/06(木) 23:28:51.19
>>712-714 ありがとうございます
そのまま検索したらCのどうのこうのって出てきたのでここで聞いてみました
仕組みもなんとなくわかりました
>>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です。
ここら辺か?
int ary[SIZE]; int i; for(i=0;i<SIZE;++i) { /* ary[i]に適当な処理 */ } //適当な処理 for(i=0;i<SIZE;++i) { /* ary[i]に適当な処理 */ } こんな感じで最初に配列アクセスに使った自動変数を 同じ用途で使う場合とかって使いまわして良いですよね? 自動変数を使い回すのはまずいと言われたのですがどうなのでしょうか
VC++使ってるんだけど 二次元配列ってmallocで生成できないんですか? 一次元だとエラー出ないけど 二次元だとエラーが出ます。 原因として何が考えられますか? サイトのをそのままコピペしてるからエラー出ようがないんですが。
二次元配列も一次元配列も同じだよ
>>718 俺もループカウンタは使いまわしてるわ。
>>719 型の書き方がまずいんじゃね。
C では void* 型から他のポインタへは暗黙に変換されるけど、
C++ ではそうではなかったりするから (C++ コンパイラではなく)
C コンパイラが使われてるかどうかの確認もした方がいいんじゃねーの。
俺は VC++ なんぞ使わんからエラーチェックがどの程度のもんか知らんけど。
>>718 別に悪くはないと思うけど、
変数が使われる範囲はなるべく限定的な方が
うまいこと最適化されやすくはあるので、
最近の流儀としては使い回さない方が好まれると思う。
724 :
デフォルトの名無しさん :2013/06/07(金) 18:13:54.95
>>722 いや普通にC言語のテンプレですよ
stdio.h
stdlib.h
インクルードしてるし
一応
一次元で代替でもできるけど
やっぱりx[i][j]という書き方はアプリケイトな感じがして
分りやすいんだけどな~
>>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);
}
ですね。
エラーでます。
>>721 >>723 特にどっちかにしろって感じではないようですね
一応使い回しはやめてみることにします
729 :
デフォルトの名無しさん :2013/06/07(金) 18:29:53.73
>>728 void* 型~~~~みたいなエラーですね。
VC++重くて今起動できないので微かな記憶だとこうです。
730 :
デフォルトの名無しさん :2013/06/07(金) 18:31:35.51
>>717 それです
FLVの仕組みを調べてました
>>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の方法がそれですか?
>>732 C++ だと malloc を使うときはキャストは要る。
まぁ C++ なら普通は malloc より new を使うんだけどさ。
734 :
デフォルトの名無しさん :2013/06/07(金) 18:52:27.03
>>733 へー
かなり勉強になりました。
ありがとう^-^
Visual Studio (VC++) 使ってるけどエラーなんてでないんだけど? コンパイルオプション見直してみたら?
ソースファイルの拡張子が .c で Cコンパイラ起動 .cpp で C++コンパイラ起動 cl.exe のオプションで明示的にこっちでやれってできるのか知らない
>>718 そのケースなら特に問題はないと思う。
C++ なら
for(int i = 1; i < SE; i++){ ... }
とした方スコープが明確になっていいんだけど。
>>737 それは C でも出来るよ。
C99 からだけどさすがにもう 10 年以上ともなれば C99 に対応してないコンパイラも少ないだろう。
VCがバカにされた気がした
bccは捨てろ
ありがとうございます。 保証されるんですね。
正の数Xを読み込んでX回数字nをscanfして一番大きい数字と二番目に大きい数字をprintfするプログラムをどう書けばいいのか分かりません 課題の条件として配列を使ってはいけません forでX回ループさせる中でnをscanfしてifの条件をどう置けばいいのか分かりません 自分の中でnを1度他の文字に置き換えて比べたいのですがうまくできませんでした 宿題スレと迷いましたがあくまで答えでなくヒントが欲しいのでこちらに書かせて頂きます
>>742 fgetsじゃなくてscanfだと..
値を保持するための変数を2つ定義して、新たに入力された数字とその2つを比較して一番小さい奴を落とせばいいんじゃない?
>>743 授業で教わったものは確かprintf,scanf,for,ifだけなのでそれだけで組めということです
途中送信してしまった 変数を2つは考えてませんでした ありがとうございます 頑張って組んでみます
>>747 C言語のことを深く考えずとりあえず組む練習させてもらってます
そのうちまた細かいことやっていくんじゃないかと
同値の場合考えてませんでした・・・
少しいじってみます ご指摘ありがとうございます
750 :
デフォルトの名無しさん :2013/06/08(土) 23:32:07.25
配列ってmallocしないとどのくらいの要素数以上になるとメモリエラーが出ますかね? 10万だと実行時壊れちゃったんですがそんなもんですか?
スタックを壊してるね グローバルにすればいけるだろう
>>751 グローバルってmain外で書くってこと?
それしたらエラーでましたよ。
構造体以外は外部宣言無理っぽいっす。
グローバル変数が使えないコンパイラなの?
>>753 gcc
Vc++
borland
全部エラーで増した。
エラー内容を書け
mallocで確保できる最大サイズっていくら? bccだとsizeof(int)*20000くらいでエラーにはならないがうまく確保できてなかった
どうせ変なコード書いてんだろ
64kB が限界に決まってるだろ
確保できるメモリは実行環境による
リンカーとかのオプションでスタックサイズ指定できなかった?
761 :
デフォルトの名無しさん :2013/06/09(日) 02:05:02.60
指定できるよ
VisualStudioのLinkだと /STACK:reserve[,commit] /STACK オプションは、スタックのサイズをバイト単位で指定します。 このオプションは、.exe ファイルのビルドだけに使用します。 このオプションは、仮想メモリ内のスタック割り当ての合計サイズを指定します。 既定のスタックのサイズは、1 MB です。
質問者自身が「わからないことがわからない」状態だから どんな答えを返しても無駄だと思うぞ。
>>756 素朴な疑問なんだけど、たまにBCC(Borland C Compiler)使っている人って、
なんで独自で制限も多いコンパイラをいまだに使っているの?
授業で強制されているなら仕方がないにしても、Windowsなら
VC Express とか使ったほうが良いと思うんだけど。
>>764 × > たまにBCC(Borland C Compiler)使っている人って
○ > たまに現れるBCC(Borland C Compiler)使っている人って
VCより軽いから
VC Expressも独自で制限も多いコンパイラ
評価版についてくる bcc32 は実は無制限で -v -vG とか結構強力だし
使ってる本人になぜって聞いてみる以外に答えはないだろう。
ときどきっていうか、質問スレのBCC率はすごい高い印象。 学校の授業とかで使ってるのかね。 昔はLSI Cが多かった。
LSI-Cは16bit環境専用だから、Windows7以降のPCだと XP modeでも入れない限り使えないからね。 フリーで32bitのCコンパイラって言うと、BCC以外はgnu になっちゃうけど、mingwとか環境ごと使うタイプは面倒 だからという理由かもね。
ああ、
>>771 は64bit Windowsの場合ね。
32bit Windowsだとまだ16bitコードが動かせるんだっけ。
動かせる。 LSI-Cで作ったフリーソフト、LHAとか結構あったけど 現在でも需要があるかは・・
774 :
デフォルトの名無しさん :2013/06/09(日) 11:48:52.52
セキュリティ問題以来、ご縁が遠くなった
Win32APIの関数で、DWORD引数のものに0を指定するのに大文字のFALSEを指定する例があったんですが、 C標準のfalseも0であることが保証されるでしょうか? 環境はVisualStudio2012です。
776 :
775 :2013/06/09(日) 12:53:14.29
自己解決しました。 0でOKみたいです。 失礼しました。
>>775 BOOL以外にFALSE使うような例って、なんか地雷臭がするんだけど
778 :
デフォルトの名無しさん :2013/06/09(日) 13:32:26.51
BOOL を返す関数の戻りが負になる、超有名な例があるね
MS公式のサンプルでFALSEが使われてるならfalseなんか使わないでそっちを使ったほうがいいと思うけど。
780 :
775 :2013/06/09(日) 14:15:00.67
メモリの仕組みについて考えたんですが 電子があるかどうか?つまり1か0か=1bitですが 電子が1から0に移り変わるタイミングの速さを、例えば1万ギア で設定したら、一つの1bit回路で1万bit分扱えませんか? つまり1bitは1か0ではあるが、常に互いを行き交っているというか。
>>781 素晴らしい!
但し、仮説は実証しないとあくまで想像でしかないんだよね。
頑張って勉強して、自分でその仮説の正しさを証明してみるといいよ。
メモリとはデータを記憶するためのもの 常に状態が変化しているのを記憶というのか?
>>781 その1bit回路ってただの銅箔か?
ちょっと何言ってんだか分からない
785 :
デフォルトの名無しさん :2013/06/09(日) 18:51:08.68
正確に言うと、常に変化している… ちょっとぐらい変化しても、しきい値より高ければ真 しきい値より低ければ偽 これがディジタルだ
いまは1素子で3bitとか10bitくらいまで余裕で表現可能でしょ。
>>781 その電子とやらを動かす仕組みを作るのが大変だと思う。
というか、根本的に現在の方式とは異なるので、何とも言えん。
>>781 Cとまったく関係ないしデバイスの仕組みについて無知すぎる。
>>789 すいません。語るの止めます。
ところで
Cで二つ以上の戻り値をreturnする事ってできないんですか?
構造体のx要素とy要素を返す関数作りたいのですが。
rubyだとできるね
ビット演算子って何に使うの?
>>792 ビット単位の処理したい時じゃないかな...
>>791 Ruby の場合は配列を代入と同時に分配する機能 (分配束縛、多重代入) はあるけど、
ふたつ以上の戻り値をひとつの配列に固めて返しているのであって、
ふたつ以上の戻り値を返しているわけではない。
そして C でも何らかの形でひとつのオブジェクトにまとめなければ return で返すことは出来ない。
引数にポインタ入れるしかないな
構造体そのまま返せばいいだけだろ。
def func return 10, 20 end num1, num2 = func()
>>798 それ良いな。 次のC/C++では出来るようにしろ
拡張しなくても構造体なり配列で返せばいいだけだろう。
c++はもう出来るんだけどね male_tuple tieで cは return (a[2]){10,20};より先に a=(int){x,y};が出来るようにならんとな
>>781 > 電子が1から0に移り変わるタイミングの速さを、例えば1万ギア
> で設定したら、一つの1bit回路で1万bit分扱えませんか?
本来2値しか記憶できない1bitの場所に1万値を記憶できるようになるってことか。
1万bit分の情報量にはならないと思うが。
>>781 出力するにも出力を受け取るにも、結局一万ギア(一万ビットの組み合わせ)データテーブルがいるんじゃない?
ビットと変化を時間軸側に倒したらそうなると思う
逆に処理の内容全て網羅したnバイトを同時に持てる容量と一気に表示出来る機構があればプログラムは事前に一回動いておくだけで終わる
>>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のサイズを超える場合などは実際のコードではチェックしているので突っ込みなしでお願いします。 コンパイラにも突っ込みなしでお願いします。
>>807 サイズは良い。
ただし、それでは終端の \0 がコピーされない。
仮に
char test[]="@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@";
として実行したら分かる。
サイズが分かっているんだったらstrncpyじゃなくてmemmoveを使ったほうが速い
>>803 の
return (a[2]){10,20};
a=(int){x,y};
ってどんな動作するん? aは何
811 :
807 :2013/06/10(月) 23:11:55.49
ありがとうございます。 いちいちstrlenしなくてもアドレスの差で大丈夫なんですね。 これからは安心して使えます。
sizeof(char) == 1 が保証されていればだけどね
でたsizeof厨ww
814 :
デフォルトの名無しさん :2013/06/11(火) 00:35:04.14
sizeof(char)==1が常に真なら sizeof(char)自体をill-formedにしちまえ C には template もねえしな 俺はむしろsizeof(void)に有用な意味が欲しかったが、もうないだろう 希ガスみたいに腐らないのがCだと思っていたが、もう勝手にしろって感じ _Boolだってお、バンバン
sizeof(char) == 1は常に真だよ 規格で保証されてる
816 :
デフォルトの名無しさん :2013/06/11(火) 01:04:26.81
うんうん、そーっすねえ
何度同じ話題を繰り返すんだ
お前が理解するまで
私のことをそんなに大事に思っていてくれたなんて
何度同じ話題を繰り返すんだ 有機生命体は同じようなことを繰り返すようにプログラムされている
俺たちにもDNAという プログラムが内蔵されているんだ 早く気付くんだ このメッセージは君が覚醒するための コマンドなんだぞ? この世界は仮想世界であって この世界が終った時に 君はコールドスリープから目覚めるんだ
sizeof(char) == 1 は常に真だが wchar_t を扱う時がある時は気をつけた方がいいな sizeof(wchar_t) 倍する必要が
と思ったら求めたいのはバイト数じゃなくて要素数だった 別に気をつける必要も無かった
>>821 そっちの世界もさらに上から見たら仮想世界だよ
下見ずに上見たら?
おっ Cのスレなんて今だにあったんだ。 C言語は基本だ。 しっかり身につけるのが吉。 ソフトの世界は進歩高度化によるジャンル化が激しくて、多種の言語が乱立するつらく悲しい修羅の道になっちまったが、 それでもCを理解しているのとしていないのでは雲泥の差が付く。 偉人が成し得てきたパラダイムシフトに挑戦するのはその後でええ!
下位レイヤへのインターフェイスが必要になったらやっぱりどこかで C は出てくるからなぁ。 どこから始めるかによって基本なのかステップアップなのかは違うだろうけど、 必要か不必要かで言ったらやっぱり必要な言語であり続けるのが C だと思う。
828 :
デフォルトの名無しさん :2013/06/11(火) 11:41:58.24
しゃぶれよ
829 :
デフォルトの名無しさん :2013/06/11(火) 12:09:45.91
しゃぶやめろよ
C言語で修羅の道終わる? 機械語とかLispとか…
>>829 シャブなしでよくプログラムなんかやれるね
833 :
デフォルトの名無しさん :2013/06/11(火) 15:24:12.10
危ないスレになってきたな そのうちどれをキメたらプログラムが捗るとかそういう話になりそうだな
独房を確保しやすいのはどこ
835 :
デフォルトの名無しさん :2013/06/11(火) 15:55:10.82
メモリ上が一番確保しやすい mallocで一発
だがfreeする
C言語は危ない匂いがするので好きだ。 アセンブラなど狂人の域だ。
ある程度は低級な言語やっておいた方がいいと思う うちの糞プログラマーはみんなphpしかやったことありませんとか、javaしか触ったことありませんとかだ。 ていうか、 プログラムの基本のアルゴリズムとか、リソース管理とかの考えがすっぽり抜け落ちてる。
CPUレベルでどういう動きをするのかとか、そういった 最下層の動作を意識する教材だな。
ならアセンブリやれよ
>>830 Lispインタプリタを、Cで実装してみれば一挙にマスター出来るよ。
>>838 本当にこれ
プログラミング初心者でいきなりC#に手を出したとき動くサンプルは作れるのにどうにもしっくりこないのが気持ち悪くてたまらなかった
Cやってからもう一度C#やってみるとオブジェクト指向の存在意義もきっちり理解できてけっこうすんなりいけた
アセンブリ言語だけで動くプログラムを作れる環境がねえ・・・
アセンブリ言語だけでちゃんとしたexe作れんの? C混ぜちゃだめだぜ
FPGAでパイプライン回路やキャッシュシステム組んだ後だとアセンブリが楽しかった。
SDK付属の汗だけで作れるよ
そうなんだ エントリポイントとかどうなってんの
リンカー知らないの?
>>850 もちろん出来るよ。
でも API を使ったりするのに SDK は要るだろ。
アセンブラやってない馬鹿無能ゴミクズゲー専がC言語マスターしたとかわめいてたからな 本当に笑えたわ
export なシンボル名がつけば リンカでエントリポイントをそこに指示できる どう記述すればソレに相当するかは知らん Cコンパイラが吐く ASM出力を見るだけでも面白いかもよ 最適化度合い変えてね
アセンブラの細かい記法は重要ではないので、 既存のソフトをデバッガで追ってみたりするのもいいんじゃないか。 ゲームをチートしてみたりとかして遊ぶと楽しい。 溜めが必要な武器を常に最強で撃てるようにとかして無双したらスカッとする。
C言語は危ないって言われるけど大丈夫じゃないの? Windowsがそういうエラーは処理してくれるでしょ
javaのガーベッシコレクションにあたる機構ってCにはあるの? というかCはVMが無いんだろ?相当危なくねーか?
ハードウェアに近いほうってようするに覚えゲーだから たいしたことは無い。 高級言語ででかいアプリ作るほうが頭使う。
用意されたもので何ができるかが重要だよな アセンブラ勉強したい人は単なる好奇心だろうね
高級言語しか知らない無能の言い訳でした
>>855 包丁並みに危険なので子どもはさわってはダメだ
>>857 いや困ったことがあればエラーメッセージ垂れ流して逃げられる分だけ
人間相手の方が楽かもよ
GCはメモリ管理のできない無能が逃げるところ
WindowsならHeapAllocやVirtualAllocってのを使えば色々解決しない?
アセンブラできないやつの話は信用するなよ C言語を語る価値すらない 死ねってことだ
ネットの自称アセンブラができるってやつの98%は20年くらい前の知識で いまどきのCPUの性能を引き出すような書き方はできない。
OS 上で動いてるんだから、危険と言ってもたいしたことないよ。 組み込みとかのスタンドアローン環境はまじヤバイが。
アセンブラやメモリ、ヒープ領域とか理解してないクズ多すぎ 無能だよなあ
>>867 > OS 上で動いてるんだから、危険と言ってもたいしたことないよ。
単なる設定ファイルだと侮り、モニタの周波数を間違った値にして壊すこともあるでしょ。
侮るのは良くない
rand自作したいんだがどうしたらいいだろう? もちろんrand()はつかったらだめということで
xorの乱数 MTのrand
乱数表を用意しておく
シードを時間以外に何かないかな
>>869 それは別にアセンブラじゃなくてもできるじゃん。
OSが管理するユーザプロセスとして動く限り、アセンブラだから危険とかはあんま無い。
スタックエラーよく出してしまうんですが あぁいうのってメモリにダメージ与えてるわけなんだろうか?
>>875 プロセスが壊れるだけで、OSの動作には影響無いのが普通
>>877 デバイスに物理的に悪影響及ぼすコードとかってあるんでしょうか?
例えばウイルスはブート部分に大ダメージを与えるそうですが
CD/DVD/BD のトレイを出し入れする、とかは物理的ダメージを与えそうだなあ‥‥ メールがきたらべろ~んてトレイを出すジョークがあるんだっけ?
>>880 本当に物理的ですねw
ソフトウェアレベルでは結局
酷使するかどうかの話になるんですかね
>>881 磁気テープ装置のような慣性動作部をもつ機械を”歩かせた”とか、レーザ素子の連続発光時間設定をミスったとかかな。
ファンの制御をいじれば基板を燃やすことができるかもな
手順を踏めばヤバイことはできる デバイスへの物理的ダメージとはちょっと違うけど 例えば普通のユーザプロセスから自ユーザのファイルを全部消すのは可能だし さらに特権ユーザになることが可能ならOS自身の動作に必要なファイルを消すことも可能 特権ユーザになれれば(まれに一般ユーザのままでも)ハードウェア関係に変な値を 設定して壊すことも可能だったりするし、SSD使ってるなら一般ユーザのままで延々と ファイルシステムへ書き込みアクセスを続けるだけでもわりと深刻なダメージになりそう でも、マシン語使わないとできないわけじゃないよね?
885 :
デフォルトの名無しさん :2013/06/12(水) 19:22:47.84
CRTCを昇天させるプログラムとか昔あったね 今だとオーバークロック遊びとか?
フロッピーのシーク音で音楽を鳴らすってのが昔あったけど ああいうのは長くやるとヤバいと思う
887 :
デフォルトの名無しさん :2013/06/12(水) 19:37:52.76
あったねー、オーバートラック それをコピーガードに使うとか
ここにいる人の想像力やばいですね。 メモリにとってよくない1 0の並びとかあるんですか? 1が連続して並んであると電子が反発しあって電磁波が発生するとか そういうのありますか?
889 :
デフォルトの名無しさん :2013/06/12(水) 19:41:54.33
>>888 memtestをずーっと眺めてると、そのへん狙ってるのがよくわかるよ
even側 odd側 それぞれで クロストーク(こっちだけセットしたのにあっちに伝播しやがった)発生してないかの確認?
GCを実装するならランタイムこみの実行環境になるんで CやC++の設計思想からするとちょっと違う感じだな。
メモリの不良品の話だろ
動画ファイルを開いて何もしなかったらファイル破損しないんだけど 最後の行にxという文字を書いて一旦保存してから もう一回開いてxを消してもファイルが破損してるのは何故ですか?
>>894 Windowsだとバイナリファイルをテキストエディタで開いて保存すると
・単なる 0x0A というデータが 0x0D, 0x0A に変換されて保存される
・0x00や0x1Aが(テキスト)ファイルの終端とみなされそれ以降は保存されない
とかかなぁ
エスパーするとコンパイラのバージョンが古いから
>>879 > 例えばウイルスはブート部分に大ダメージを与えるそうですが
物理的にダメージ与えてる訳じゃないよ。
まあ、フラッシュメモリーに書き込みまくるようなウィルスなら多少ダメージはあるだろうけど。
sseとかcpuの独自機能使って高速なベクトル演算とか アセンブラ使わないとうまく最適化できないとかざらだわ アセンブリ言語覚える必要がないとか言っちゃってる奴は所詮その程度のプログラムしか組めないってことだ 一般人レベルでお終い
899 :
デフォルトの名無しさん :2013/06/12(水) 20:52:16.46
アセンブラ逃げまくるやつの言い訳って聞いてて耳が腐るよな
まあ今の時代は必要ないね
アセンブラできるとどんな面白いことができるんすか
HaskellやLISPなんぞいいから アセンブラをやりましょうね無能
903 :
デフォルトの名無しさん :2013/06/12(水) 20:58:14.88
おまえがな
904 :
デフォルトの名無しさん :2013/06/12(水) 20:58:55.84
真面目な話、数学勉強したほうがいいって
今のゲーム製作してるようなゆとりはアセンブラすらわからなさそう 高級言語しかやってねー無能ってのが証明されちゃったな
>真面目な話、数学勉強したほうがいいって できて当たり前だろ 何のためにプログラミングしてだ?ん?ん?無能
コードをプロファイリングしてボトルネックを見つけ出せる くらいじゃないとアセンブラ使っても無駄だね。
>>908 すげえ。そのくらい頭が良かったら中学生くらいで新聞も読み終わってそうだね
911 :
デフォルトの名無しさん :2013/06/12(水) 21:03:36.80
そりゃあね プログラミング自体が数学の上に成り立っているものであって ソフトやるやつはハード解れってのと同じ でも量子力学を憶えたからってCをすぐには使えない
数学の話なのに量子力学が出てきた
913 :
デフォルトの名無しさん :2013/06/12(水) 21:09:32.45
いやCの話だってw
プログラミングなんて必要になったら覚えればいいんだよ。 必要もないのに学習したって、全然身につかないから
デバイス工学やれよ
>>909 速度が求められるならプロファイリングくらい当然やるだろ
嫌、求められなくても普通は自分でプログラムの出来を確認するのにするもんだと思うけどな
なんだ?意識の差か?
>>916 ムキになって食い付いてるわりに、同じこと言ってるだけのパターン
918 :
デフォルトの名無しさん :2013/06/12(水) 21:17:21.58
>>909 つまり君はアセンブラを使っても無駄ということだね
C言語をやってるやつ、幼稚すぎるぞ・・・マジで
phpしかできない無能先輩ちっす
Linusが幼稚とは君はどれほど偉いのかね
922 :
デフォルトの名無しさん :2013/06/12(水) 21:30:03.31
ワロタ そーゆー時代か
なんだ同じことって
アセンブラは一度くらいやっておくと色々勉強になるけど、 実務では生産性の問題からイントリンシックでSIMD演算やる程度に抽象度は上げるな。
925 :
デフォルトの名無しさん :2013/06/12(水) 21:56:53.31
一度じゃ足りない 最低二度だ
それで済むならそれでいいやん イントリンジック使えるくらいならちゃんとcpu命令も理解できてるだろ
http://homepage1.nifty.com/eggs/houhou/bouei/tisei.html >自分を直視することを避け、知性の世界や、観念的な世界に逃避してしまうことです。
>専門用語を乱発したり、やたらに難しい言葉を使ったり、言い訳的な言説に終始したり
>します。一見ものごとを理解しているように見えたりしますが、本質的なことは何も理解していません。
>難しい表現を使ったりすると、自分自身でも何かを理解したような気になりますし、誇大感を膨ら
>ませることもできます。しかし、その背後にあるのは優越感を持ちたいという気持ちであり、支配したい
>という願望です。これは見捨てられ不安から来る、無力感の裏返しだったりします。観念の世界に
>逃げ込んでしまうと、自分の感情をありのままに直視することが難しくなります。乱発する知的な言葉は、
>本質的な問題へのめくらましとして機能します。
>このような知性化は、言い訳のため屁理屈としても機能します。だれかから自分の行動の問題点を
>指摘されると、それなりのつじつまの合った説明をします。本人もその説明は間違っていないと思い
>込んでいます。自分の行動は正当化されます。しかし、第三者が見れば、単なる言い訳にしか見え
>ません。逃げているだけなのです。さらに追求されても、言い訳を重ねるだけで、決して自分を素直に
>見つめることはありません。そして、本人はどこにも問題がないと思い込んでいます。自己洞察におい
>ても、言い訳的な、的外れの展開に終始して、分析が停滞したりします。
”アセンブラ”が難しい言葉なんだってw
>>898 今は組み込み関数でいけるけどね
そっちの方がレジスタを勝手に最適化してくれるし便利
まとめると、 駄目な奴は何をやっても駄目
アセンブラ、最初はつまらんかったけど、SIMD化で劇速化して感動した。 それ以外は、コンパイラが天才すぎて、いたずらに複雑にしてしまうだけというオチ。 定数がからむ演算とか、人智を超えたコードを吐きやがるw キャッシュ制御命令も、高度な予測機構を備えたハードウェアプリフェッチのおかげでほぼ意味なし状態w 唯一効果的なSIMDに関しても組み込み関数があるので、 アセンブラを書く必要がなくなった。
アセンブラが必要なのは divで剰余と余りを両方とも使う場合だな こればっかりは組み込み関数でもどうにもならない
剰余と余りって同じじゃん! 商と剰余だった
解析にも使う
客先常駐で偉そうな客先社員に見下されて何の経験にもならない雑用を押し付けられて時間を無駄にした上に精神病むのがオチw 30代で客先面談に受からなくなって嫌がらせを受けて自己都合退職に追い込まれて未経験の異業種で人生やり直すのがオチw 常駐先企業の人件費抑制に利用されただけの人生だったな残念w
外注エリアだけ冷房の効きが弱い 仕事内容そのものに差があって下請けはゴミ仕事 食堂に行けば社員は会社支給のメーカーのロゴ入り作業着なのに自分だけスーツで浮くから いつしか食堂に行くのが億劫になって自席で菓子パンになる 客先社員は24インチのダブルモニタなのに自ぶは解像度の低い旧式ノートPC プログラミングしたのは自分なのにソースコードの頭に入れるコメントの作者名は客先の社員名 SVNやCVSへのコミット権限が与えられず、その都度社員にお願いしないといけない コードレビューといいつつ客先社員へのプログラム勉強会になる 自社の勤務表ではお昼休みが1時間なのに客先の勤務表では45分だから毎日15分サービス労働になる
937 :
デフォルトの名無しさん :2013/06/12(水) 23:09:35.87
どこだかだいたい想像付いたわw
そのうち外注エリアだけ酸素濃度が低いとか言い出しそうだな
939 :
デフォルトの名無しさん :2013/06/13(木) 00:31:39.80
18% 自分で測れよ文系
お前らだっさいフォント使ってそうだな アホみたいな遷移のUI作ったりな アセンブラまで行くのも UIやマネジメントに行くのも 一つのところから移動するという意味では同じ ただ見えない他人を攻撃してるよりよっぽど良いわ
オフショア開発の成果物がバグだらけだったのでクレーム入れたら、テストしろとは書いて無い、テストして欲しかったらテスト仕様、テストデータ、テストプログラム、テスト費用よこせ!に目が点になったあの日。
契約に口出し出来るところまで行きな
あー人を攻撃するって気持ちいいー
>>943 人を攻撃した分だけそっくり自分に返ってくるぞ
>>905 数学といってもいろいろあるさ、どの辺を押さえておけばいいの?
中学数学と高校数学をマイペースで良いからとにかく毎日繰り返し勉強。 死ぬまで繰り返す。
数学の知識があっても、応用が利かないアホになるだけじゃね
数学の知識だけではだめだと思う。 むしろその知識が役立つ分野は限定されているから、 半端な知識ではだめだろう。
プログラマの数学 [大型本] 結城 浩 (著) 数学ガール (数学ガールシリーズ 1) [ペーパーバック] 結城 浩 (著)
文系ってすぐわかるよね バカみたいに数学の重要性を連呼してる時点で 自分が数学ができずに苦労したことを皆にいましめてるんだろうね
文系は高級言語やIDEいじって喜んでる程度の無能 アセンブラや低級なことまでわからない無能 自殺したほうがいいですよほんま
理系は優秀でない=無能に直結する1ビット脳
そうだな そんな事は見積段階で分かること
都合のいい結果を得られた時に 検証もせずうのみにする奴はプログラマに向いていない
957 :
デフォルトの名無しさん :2013/06/13(木) 13:27:22.03
クレーム入れたときの論点はバグなんか注文してないって話 要求どおりのものが納品されれば、テストはどっちでもいい内部事情だ そもそも品質管理は作る側の責任範囲 瑕疵を指摘されて逆ギレする業者はどうぞご勝手に干されて下さい その分、まともな業者が潤いますから
>>957 君の会社には、受け入れテストという概念は無いの?
959 :
デフォルトの名無しさん :2013/06/13(木) 13:58:07.00
ならば契約書のバグか
>>957 バグは必ず出るもんだし、要求仕様書を渡して終わりが通じるのは日本だけ
バグあっても要求仕様を満たしてれば契約的には問題ないからね
>>953 プログラム:int leap(int year);
仕様:入力year=2000の場合、返り値=1
成果物:int leap(int year){return 1;}
964 :
デフォルトの名無しさん :2013/06/13(木) 14:57:46.95
破っても捨てちゃだめだ 破って仕様書持ってきた奴の口に捩じ込んで 2時間ほど正座させて反省させるべきだ
965 :
デフォルトの名無しさん :2013/06/13(木) 15:32:05.91
>>961 バグは必ず出るなんて、口が裂けても言っちゃダメだよ (たとえ事実でも)
バグがあっても要求仕様を満たす? 君のところの定義では何をバグというのだ?
>>965 Windowsなんか、鬼のようにバグが出てますが
967 :
デフォルトの名無しさん :2013/06/13(木) 15:51:46.08
>>966 バグが出てること自体はよいことではないが
追加課金せずに対応してるところが
>>941 が踏んだ地雷との決定的な違いだ
>>953 韓国も負けてないな。
リアルでニッテイがー、って言い出したときはスケジュールがどうした?と考え込んだわ。
配列を使わずに printf for while if を使って3ケタカンマ区切りをすることができますか?
>>957 > そもそも品質管理は作る側の責任範囲
だからお前にテスト云々言われる筋合いはない。
直してほしいなら、せっせとバグ指摘してこい。
971 :
デフォルトの名無しさん :2013/06/13(木) 20:06:37.77
973 :
デフォルトの名無しさん :2013/06/13(木) 20:50:38.54
HRESULTってなんて読むの? ググっても出てこない
H・リザルト
unsigned をアンシグニド と読んでたググってもマジ出てこない
977 :
デフォルトの名無しさん :2013/06/13(木) 20:56:45.02
>>972 そうなんですか?まだまだ初心者でして・・・・。
>>978 配列使わずになんて縛りを初心者が何故思いついたのか
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"); }
>>980 かならず改行されてしまうのはともかく
3桁カンマ区切りするなら複数の数値を桁揃えとかしたいだろうし
それじゃちょっと不便じゃね?
ちょっと何言ってるのか分からないです
>>971 たいていのパッケージソフトなんて、もっとひどくてバグがあっても直す事すらしない事を、ライセンス条項でお客様に言ってるぞ。
そんな事も理解せずに、オフショアとか、バカすぎ。
そりゃいいカモになるわな (w
>>983 なんか受け答えが変だと思ったら、2chには自分+数人しか居ないと勘違いしてる口か。
985 :
デフォルトの名無しさん :2013/06/13(木) 22:26:37.10
>>983 >>971 永久ループ・・というより無限再帰だね
おまえは少なくとも made in japan じゃねえ
再帰ってメモしたりしないと追えないんだけど 頭の中でやらずにお前らもメモしてる? 呼び出し元の行が上だったか下だったか忘れる
988 :
デフォルトの名無しさん :2013/06/13(木) 22:58:17.50
>>986 それははっきり、普通のループと同レベルだね
ある関数呼び出しが再帰かどうか、ロジックを追っているときは完全に記憶の彼方で
スタック見積もりをしているときロジックとは別な論点としてドライに収支計算する
上か下かは終始意味をなさない
//アセンブラにはCにない特殊な再帰もあるし
989 :
デフォルトの名無しさん :2013/06/13(木) 23:01:12.02
白乾二合と皮蛋で気合い入ってるが、それは許せ(ウーイ
>>984 かわいそうなやつ...
>>985 だから、日本製のソフトのライセンス条項読んでから出直してこいよ。
バグなしとか書いてるやつあるなら、示してみなよ。
バグがありますなんて条項もみたことないわ
as-isなんてもう決まり文句でしょ。 バグあっても責任取りません条項。
中国ならスパイウェアをサービスしてくれるんじゃね?
>>991 誰もそんなこと言ってないのに、バカじゃね?
オフショアの発注とか何も知らないのに、ライセンスなら知ってると どや顔で首を突っ込んだ挙げ句引くに引けなくなって 涙目になってる人がいますね
>>988 >//アセンブラにはCにない特殊な再帰もあるし
jumpのことなら、再帰じゃなくて大域脱出とか、末尾再最適化で使われてる。
あ
うめ
999
千
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。