C言語なら俺たちに聞け パート0001
■ このスレッドは過去ログ倉庫に格納されています
>>522
そのイメージがわからないから、コードでいいので具体例を示してくれない?
すごい単純なので良いので。
本当にイメージ出来ないんだ。 >>523
イメージがわからないけれど、無意味とは判ったのですか。。。 ひょっとして
「インスタンスには関数ポインタじゃなくてクラス定義へのポインタを持たせろよ」
的なこと? ふつう、インスタンスが違っても関数の定義は一つなので、インスタンスのポインタだけでいいよね。 構造体に関数ポインタを持たせれば、
インスタンスごとに関数の実体を変更できる。
C++でのオーバーライドに相当する使い方。
というのはどうかな。コード示せなくて悪いけど。 ip->func(ip, ほかの引数...)
仮想関数を実現するときぐらいで静的に確定してるなら
func(ip, ほかの引数...)
で十分だよね >>530 を見るまで >>510 の意図を把握できなかったよ。
そういう意味だったのか。 ip->func( ip)
に対応するのは
func_of_some_class( ip)
だよ。ネームスペースが違うんだよ。
自分がそうしないから無意味というような考え方はあまり楽しくないと思うよ。 Cなんだから、単純に構造体に識別子を持たせるだけでいいね >>507
まだ見てる?
func_of_some_class( obj)
よりは
obj->func( obj)
の方が嬉しいだろうけど、関数が多いと *obj が大きくなる。もう気づいてるよね?
それが問題になるようなら関数ポインタのための構造体を1個だけ用意して
some_class . func( obj)
という方法もある。でも、あまり嬉しい書き方ではないだろうね。
そこで、この構造体を指すポインタを *obj に入れて
obj->f->func( obj)
みたいな感じでどうだろう。これなら *obj の大きさはポインタ1個分増えるだけだし
obj->func( obj)
と同様にコードの再利用性も高い。まあ、C で簡単にやりたいなら多少は妥協も必要だけど。 getsって危険な関数って書いてあったけど
putsとputcharって、危険ですか? すまない、ちょっとお尋ねします
debian lenny なんつー古い環境で開発せざるを得ない中、C++で「unsigned long long」型を使おうとしてるんだけど
16ビットずつシフトさせていくと、32ビットを超えた部分が消えてしまう
a = 0x00000000ffffffff;
a << 16;
→ 0x00000000ffff0000
こんな感じ、本来なら0x0000ffffffff0000になるはずだが…
環境変えろは分かるんだが、以前のgccでそんなバグの事例があったかどうかが知りたいです >>537
配布済みパッケージならgcc 3.4, 4.1, 4.2, 4.3があるけど
少なくても 4.3.2 にはそんなアホみたいなバグは無い
http://ideone.com/qN9OJV
とはいえdebian lennyだろうと好きなバージョンのgcc突っ込んで使えばいいと思う >>539
原因が分かりました…
画面にprintf出だしてたんだが、0x%016x にしてたんが問題やった
0x%016llx でちゃんと表示された!コードら正しかった!
お騒がせしました gdbも使えない環境なのはきついね…
gccだって指定されてるから変えらんないのですわ >>541
いかにも「うっかり間違えそうな人」が書いた投稿だね。
よほど慌ててるのか。
cppcheck を試したらどうだろう。
printf() の書式文字列と引数の型の一致もチェックしてくれるよ。 >>544
俺です
たしかにちとパニクってしまった一連の流れではある
まぁこのあとにディストリビューション更改が決まってはいるので、できうる限り俺が主導権握って
いろいろ決めてしまおうかと思ってる int tensu[3]
for(i = 0;i < 3;i++)
scanf("%s %d %d",tensu[i],tensu[i],tensu[i]);
printf("%s %d %d", tensu[i],tensu[i],tensu[i]);
超初心者です
配列がわかりません
文字列を混ぜる場合、どうすればいい?
田中 59 46 char namae[3][128];
int tensuu1[3], tensuu2[3];
for(i = 0;i < 3;i++)
scanf("%s %d %d",namae[i],tensuu1[i],tensuu2[i]);
printf("%s %d %d\n", namae[i],tensuu1[i],tensuu2[i]); char namae[3][128];
int tensuu1[3], tensuu2[3];
for(i = 0;i < 3;i++)
scanf("%s %d %d",namae[i],&tensuu1[i],&tensuu2[i]);
printf("%s %d %d\n", namae[i],tensuu1[i],tensuu2[i]); int lang[3][2]
hound dog
to zu
no nein
2次元配列だけど、scanf使ってこんな感じで
入力したいけど、どうすればいい? C言語でゲラフィック液晶動かしてみたいんだが、簡単に動かせるツールみたいなのある? ___
♪ ∩/ || ̄ ̄||♪ ∩∧__,∧
_ ヽ|.....||__|| 7 ヽ( ^ω^ )7 ゲラフィック♪
/`ヽJ ,‐┘/`ヽJ ,‐┘ ゲラフィック♪
| ̄ ̄\三 / ̄ ̄ ̄/ ´`ヽ、_ ノ ´`ヽ、_ ノ
| | ( ./ / `) ) ♪ `) ) ♪ DENSOの奴はC言語のインターフェースあったかな・・・ ☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆ デバッグで初期化してない変数の値見ると
でたらめな値が入ってることあるけど
zaifの2246兆バグもそんな感じなの? あっちでそんな質問にための質問してるのがいたが
教師無し学習中のAIっぽ >>561 その可能性はない、とは言えないね。
未初期化領域からの読み出しは「未定義の動作」らしいから、
口座に多額の振込がされてもANSI規格には反しない。 1年近く放置されて沈んでたのが、たまたま上がってたんで、
質問する人と答える人が現れたという程度じゃろ。
最近「俺に聞け」の145も立って機能してるし。 あのお、どのレベルまでいけたら初心者脱出=プロとして食っていける、
なんでしょうか 大いに世の中に役に立つソフトウェア、もしくは高い値段が付いてよく売れるソフトウェアが作れればプロだ。
C言語のみに限定する話ではないし、色々な選択肢はある。高い技術力は必ずしも必要ではない。
ゼロからの製造よりも組み立ての方が良質になる。個人の技術力では、我がソフトのカラスンポくらいのものが作れれば十分だ。 開発段階では、訳のわからないことになるかもしれないが、現在のコンピューターのシステムは、
管理者権限がなければ、そんなに簡単には壊れないので、大いに試行錯誤するとよい。
情報科学や計算機科学の理論・知識があれば、試行錯誤の手間と時間は削減できる。 だからこそ、皆さんには大学へ進学し、資格を取得することをオススメしている。 資格なんかに頼らなくてもいくらでも勉強できる
資格はレベルの低い大学を出た人がレベルの低い会社に入る時に有効になる場面があるかも
といった程度 YouTube にある、セレブエンジニアの小松和貴の動画を見れば?
プログラミング未経験者が、月50万円を稼ぐ方法! >>566
他人が書いたソースの「あらゆる」バグを見つけて
原因も治し方もすべて解説出来ればOK 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
3F9AF >>573
あらゆる、というのは到達困難かもしれないね… >>573
実際は、バグの原因がわからなくとも、対処できればプロ。
対処しかできないプロが多いのかもしれないが。
//理由はわからないが下記を消すと動かない。
sleep(500); sleep()ってわけじゃないが、同じプログラムを速いマシンで動かすと
不具合が出るってことあったなあ。
それはシグナルハンドラの作りが悪くてそうなってたんだけどね。
遅いマシンだとその遅さ故にまともに動く率が高かったという。 I/O直叩きでセトリング時間をCPUクロック依存で確保してると… CPUが変わった時、
パケットとパケットの隙間が狭くなりすぎてたまにエラーになることがあったな お願いします。
C言語でテトリスを作るのに4次元配列はかならず必要でしょうか? >>582
実際にテトリスを作ったことはないけど、各次元をどう配分するの?
盤面のタテヨコで2次元、ブロック消滅前後の状態保存用に1次元、
対戦のプレーヤ2人分に1次元、これで合計4次元って感じ? >>583
そんな感じです。でもよく考えたらブロックの回転状態用にもう1次必要で、
5次元ですね。
3次元より上は空間的にどうイメージしたらいいのでしょうか?
この世は11次元だという話もありますが(物理学)・・・
ついていけてないです 本当にそれだけの 独立変数が必要なのか? を考えるだけー >>585
空間をイメージするのは2次元で十分
4次元幾何や5次元幾何をイメージ出来る必要は全く無い
この世が11次元?誰がそんな事を?
超ヒモ理論のヒモの震動の自由度が11次元
て言うのをそういう解釈しちゃう人がいるのか
そんな事をいったら、
この世界に無限次元な物などいくらでもあるが
普通に生活出来てる >>582
要らんだろう。縦横の2次元配列で余裕で行けると思うが?
更に言語も関係ないと思うが。
そもそもなんでそういう考えになったの? >そもそもなんでそういう考えになったの?
うん、私もそれが聞きたい、責めているわけじゃないですよ、新しい発想を求めているのです… まず、紙に小さな点を描いてみる。これがゼロ次元だ。
次に、小さな点を描いた紙を2つ横に並べて、その2つの点を頭の中で連続的につなげる。これが線であり、一次元だ。
さらに、線を2つ並べて頭の中で連続的に繋げる。これが平面であり、二次元だ。(以下略) >>591
そこでやめずに、4次元まで続けていただけませんか? 大学で超立体くらい勉強しただろう。板違いなので、これで終わり。 データの世界では、n変数の関数のことをn次元という。 毎月のミカンの生産量と、毎月のリンゴの生産量を縦に並べるとしよう。
これは、月と、果物の種類の2つのパラメータがあるから、2次元のデータだ。
このデータが有限であれば、二次元の紙の上に、表(table)として書き表すことができる。 線を切断すれば点が現れる。
面を切断すれば線が現れる。
立体を切断すれば面が現れる。
物体を「切断」すれば、より小さい次元に映し出すことができる。 ならば、3次元のデータを紙に書き表すにはどうすれば、いいか?
3次元のデータをあるパラメータの定義域についてすべて切断すれば、複数の二次元のデータになる。
つまり、3次元のデータは、複数の表として書ける。 片山が新キャラ扱いされるなんて時代の流れを感じざるを得ない >>599
片山さんはすっごく尊敬しています、注目に値するべき生産性です ■ このスレッドは過去ログ倉庫に格納されています