C言語なら俺に聞け 149

■ このスレッドは過去ログ倉庫に格納されています
2018/10/28(日) 22:01:44.38ID:D9Gt7gmT0
!extend:checked:vvvvv:1000:512

次スレを作る時は上記1行をコピーして2行に増やして必ず1行目に入るようにしてください。

C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/

C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf

C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html

C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/

JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/

※前スレ
C言語なら俺に聞け 148
https://mevius.5ch.net/test/read.cgi/tech/1537347410/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2018/12/16(日) 12:24:14.24ID:+TcxNu6P0
>>575
× 教えてくれや
× 助かるわ
お前らゆとりが駄目なのはそこなんだよ。他力本願過ぎ。
そして指摘しても糞女と同様開き直るし、救いようがない。

お前がどういう風に分かってないかなんて誰も知らないのだから、
お前自身がいろいろ調べて、

○ 俺的にはこう思うんだが、どうかな?

とやらないと駄目なんだよ。
具体的に上手くやったのは497で、497-499-502-503とならざるを得ない。
そのサイトには「シグナルでは使う」と書いていたから、それを否定する俺の見解を質してきたわけだ。
このやりとりは少なくとも彼には利益があっただろう。
そしてこの積み重ねが差になっていく。

お前も含めて、粘着共は何一つ意見を言えない。言う知能すらないからだ。
その差がどうして生じたのか、いちいち教えてやってんだからよく考えろよマジで。
2018/12/16(日) 12:25:29.13ID:XNrlNwMM0
>>525
挿入ソートの場合は、挿入すべき場所に直接挿入すればよいので、
swapで何度も入れ替えないようにして、必要なところに直接挿入するのがいいかもしれません。
一瞬バブルソートのように見えて、挿入ソートってこんなのだっけ?と思いました。

最適化についてはこのコードだけではなんともいえませんが、
大まかでよいのであれば、全体をclock関数で時間計測したように
この関数の中で経過時間を計測してみるのもよいと思います。
効果のある場所が限定できると推測もしやすくなりますので。
2018/12/16(日) 12:47:37.29ID:GOuL0+IB0
>>571
おおお、私の挿入ソートの為にありがとうござます。お手数おかけしました。
ちゃんと内容を読めていないので、時間を取ってテストドライバのソースを読んでみたいと思います。

一旦ひとまとめすると、
一応私の書いたソートは動いていて、ちゃんと「挿入ソート」になっているという感じでしょうか。
やはり、>>575さんもおっしゃる通り、なぜ-O無しと-O1の最適化の有無で、ソート時間が大幅に変わるのかが気になります。
コンパイラって不思議ですね。

>>577さん、ありがとうございます。
挿入ソート内での時間計測もやってみたいと思います。
この挿入ソートを作る前にバブルソートも作ったのですが、
以下の様に書きました。
void bubble_sort(unsigned array[], unsigned length)
{
 register unsigned *l = &array[0];
 register unsigned *r = &array[length - 1];

 while (r > l) {
  while (l < r) {
   if (*l > *r) {
    swap(l, r);
   }
   l++;
  }
  l = &array[0];
  r--;
 }
}

これに関しては、最適化の有無で極端にソート時間が変わる、というのはありませんでした。
と言っても最適化有効の方が速くはなっていましたが。
2018/12/16(日) 13:49:55.21ID:1E8BbQgX0
乱数で特定のデータを作って、それがソートされてるっぽいから
アルゴリズムは正しい・・・って正しいのか?
2018/12/16(日) 14:02:59.03ID:YrIrW4/W0
ほぼ整列済みのにデータに対してだけ速い挿入ソートがランダムなデータにはクッソ弱いのなんて当たり前じゃん
581デフォルトの名無しさん (ワッチョイ 1e80-2dqZ)
垢版 |
2018/12/16(日) 14:11:58.83ID:Q57qqdXG0
https://ideone.com/g3SF36
https://i.imgur.com/DCnfjLD.png

忠実に書いてみて試してみたが
そういうほど効果はなかった

void insersion_sort2(aho_type_t* au_A, size_t n_A_length) {

  const aho_type_t const* cu_end_of_data = au_A + n_A_length;
  aho_type_t* au_j;

  for (aho_type_t* au_i = au_A + 1; au_i < cu_end_of_data; ++au_i) { // @
    aho_type_t u_x = *au_i; // A
    au_j = au_i - 1; // B
    for ( ; au_j >= au_A && *au_j >= u_x; --au_j) { // C
      *(au_j + 1) = *(au_j); // D
    } // E
    *(au_j + 1) = u_x; // F
  }
}
582デフォルトの名無しさん (ワッチョイ 1e80-2dqZ)
垢版 |
2018/12/16(日) 14:12:26.99ID:Q57qqdXG0
  /*
  @ i ← 1
  @ while i < length(A)
  A  x ← A[i]
  B  j ← i - 1
  C  while j >= 0 and A[j] > x
  D   A[j+1] ← A[j]
  C   j ← j - 1
  E  end while
  F  A[j+1] ← x
  @  i ← i + 1
  @ end while
  */
2018/12/16(日) 14:19:33.35ID:MKia07Gc0
またvoid君が暴れてたのかw
584デフォルトの名無しさん (ワッチョイ 1e80-2dqZ)
垢版 |
2018/12/16(日) 14:21:40.72ID:Q57qqdXG0
ちなみに乱数シードを変更して自動的に1000パターンのセルフチェックもやってみたが
>>525のコードの誤りは一度も検出されてない
種類を減らして重複を増やして試してみたりもしてる
コレでも>>525のコードの誤りは一度も検出されてない

 出力された要素に入力された要素が含まれること
 出力された要素の大小関係が適切であること

コレがひたすらプログラムでセルフチェックされてる
2018/12/16(日) 14:23:51.69ID:lv3vm4Nk0
>>572
さっきからマウントマウントって
盛りのついたサルみたいなのはおまえだけだ

registerと書いてあったら何がやばいのか
仮引数に[]と書いてあったら何がやばいのか
やばいといった張本人=おまえが説明することだ
こればかりはググれで逃げることはできないぜ

失言でマウント取り損なって真っ赤になってるサルめ
2018/12/16(日) 17:18:28.63ID:+TcxNu6P0
>>585
じつはぼく、やばさがわかりません、まで読んだ
2018/12/16(日) 17:23:33.91ID:lv3vm4Nk0
>>586
うん、おまえが言ったことがどうやばいのかは全然わかんねえ

525のコードに限らずとも
registerと書いたらどうやばいのか
仮引数に[]と書いたらどうやばいのか

早く言えよ脂ハゲ
それとも撤回か?
588デフォルトの名無しさん (ワッチョイ 1e80-2dqZ)
垢版 |
2018/12/16(日) 17:56:55.46ID:Q57qqdXG0
今回の最終コード(メモリ解放を忘れてた箇所を修正した)
 https://ideone.com/sylJTW

実行結果(挿入ソートの修正前後)
 ideone
  https://i.imgur.com/OkRrvlm.png
 オレのPC
  https://i.imgur.com/7oy0aQS.png

proc      elms   cts   cts/100000elms
sort(修正前) 524288 34.736 6.625366
sort(修正後) 524288 21.109 4.026222
qsort      524288 0.074  0.014114

結論:挿入ソートを使うのは徒労
    >>525のコード自体は一切問題ない
    そして、コードの誤りは一切なかった
     ⇒ つまり、この板には低学歴知恵遅れしかいないことがまた実証された
        つまり、低学歴知恵遅れがテキトーなことばっかりいってることがまた実証された
2018/12/16(日) 18:41:12.85ID:lv3vm4Nk0
撤回でいいんだな? おい脂ハゲ
2018/12/16(日) 19:16:02.98ID:+TcxNu6P0
>>587
>>589
>>570
まずはお前自身の論理に一貫性を持たせようか。
>>570なんて全く今のお前自身だろ。

ゆとりは本当にこれが酷い。
お前らが『失敗作』扱いされるのも当たり前。
2018/12/16(日) 19:55:13.86ID:MKia07Gc0
void君と半角君がいるw
2018/12/16(日) 20:22:05.70ID:+TcxNu6P0
>>591
お前も味方の>>589に何か教えてやったらどうだ?
お前も自分の意見すら表明出来ないヘタレだし、そもそも問題を理解出来ないから無理か?

まあこれがゆとりが『失敗作』扱いされる理由だ。
本当によく考えろ。
2018/12/16(日) 21:11:35.54ID:78j4CJdmd
んで引数voidの件にはダンマリかよ
Cの基礎も知らずによく上から目線でゆとりをバカに出来るよな
上司や部下から陰で笑われてるだろお前
2018/12/16(日) 21:47:08.64ID:+TcxNu6P0
>>593
このスレ&過去スレ読んでそれ言ってるのか?
なら重傷だな

ゆとりって、本当に連呼リアンと知能もモラルも同程度だな
どうもお前らは連呼すれば既成事実が出来上がると本気で思っているようだが、そんなことはないから
2018/12/16(日) 21:55:54.72ID:GOuL0+IB0
>>588
本当に検証ありがとうございました。
今テストドライバのソースを眺め始めたところで、まだ読み終わっていないのですが、
10行目のマクロが do {} while (0) で囲ってあるのには何か理由や慣例のようなものがあるのでしょうか。
合わせて教えて頂けると嬉しいです。
2018/12/16(日) 22:00:32.41ID:MKia07Gc0
void君絶好調だなw
ゆとりを馬鹿にしているみたいだけどまだ若い分潰しが効く
それに引き換えvoid君は老害の一言に尽きる
引数voidって何だ?と書き込んだ時点でお前のレスの信憑性はお前の頭と一緒で限りなく薄いんだよ禿w
2018/12/16(日) 22:04:09.68ID:hxwpEJ+zM
引数void君の日曜日
2018/12/16(日) 22:14:09.84ID:+TcxNu6P0
>>596
ゆとりは知恵遅れすぎて整合性という概念がない。

王道と王道と(ryだ。
俺を信用しないのは自由だが、世界中の誰もそれをしないのには理由がある。
ゆとりはこのことすら認識出来ない。

だからゆとりは『失敗作』なんだよ。
なんつーか、普通に考えれば分かるだろ、が通じない。
そして無駄に議論が紛糾する。
お前らの足もお前らが引っ張ってるんだと思うぜ。
2018/12/16(日) 22:17:44.41ID:A7Qua2Dpa
>>595
1文での表現で、かつ、セミコロンない場合のエラーを実現するためだね。
2018/12/16(日) 22:39:13.74ID:IjCemHtZ0
>>596
>10行目のマクロが do {} while (0) で囲ってあるのには何か理由や慣例のようなものがあるのでしょうか。
もう覚えなくともよい古代の小技でしかありません、気にしたら負け
2018/12/16(日) 22:40:10.46ID:GOuL0+IB0
なるほど、
if (a > b)
 swap(a, b);
などを置き換えられたときにエラーが発生しなくなるのですね。
勉強になりました。ありがとうございます。
2018/12/16(日) 22:41:05.38ID:GOuL0+IB0
×などを
〇などが
603デフォルトの名無しさん (ワッチョイ 069f-UKyl)
垢版 |
2018/12/17(月) 03:25:30.31ID:SLvNUvmN0
>>596
引数に void を知らないのはかなりの初心者だと思うよ。

まあ、大昔のC言語にはなかったんだけど、その大昔からずっと使っているなら引数に void を入れておけば
引数なしを表すという規格になって、そしてあらゆる標準的なヘッダファイルの中で使われ始めて
man getchar なんてやって man ページ出すと int getchar(void); なんてのが出て来て、試しに引数に何か
セットして呼ぶように書いたらエラーが出たりして、ああこりゃ便利になったなあなんてことを体験したりして、
まず忘れる事はないだろうから。
2018/12/17(月) 06:30:07.34ID:QzDaCAv50
voidを知らないのは、K&R Cのまま更新が止まったボケ老人だ
若かった頃から不勉強の傾向が強かったやつね
2018/12/17(月) 09:37:10.86ID:nW56DxVi0
>>497
それは別のところで確保すべき話ではないの?
2018/12/17(月) 12:43:01.45ID:FuitD2SD0
VOIDと書いてスタークルーザーを思い出す。
607デフォルトの名無しさん (ラクッペ MMb3-ppkv)
垢版 |
2018/12/17(月) 12:47:32.91ID:I/0A0iGaM
今Cやってる人はなに作ってるんですか?
2018/12/17(月) 16:55:11.83ID:CFStKxet0
Javaのスキルが低すぎて干された人物でしょう
すると引数voidを初めて見たというセリフの整合性がつく
C言語ならマウンティングできると思ったんでしょ
2018/12/17(月) 17:08:16.23ID:epqh6mY00
オレは単なるジョークだと思ってたんだが、本気だったとは
2018/12/17(月) 20:55:39.65ID:TMWWsAye0
>>604
K&R2 には、すでにして void は存在しましたけれども、K&R1 にはなかったのでしょうか?
個人的には void よりも void * の方が好きです、今でも何にでも使える最強アイテムだと思ってバンバン使っています…
2018/12/17(月) 21:11:40.45ID:WCs/11MM0
void*は一旦char*なりにキャストしてやらないと演算できないのが惜しい。
2018/12/17(月) 21:18:03.63ID:ddAMIqrq0
演算だって???
2018/12/17(月) 21:26:23.72ID:WCs/11MM0

ポインタ演算知らない人?
2018/12/17(月) 21:51:10.09ID:epqh6mY00
分かるけど、省略はしない方が良い
2018/12/17(月) 21:57:32.13ID:tIzZYkqxa
mallocの戻り値がchar *みたいな
616デフォルトの名無しさん (ワッチョイ 1e80-2dqZ)
垢版 |
2018/12/17(月) 21:58:37.52ID:4lEE+Jgc0
惜しいもくそもない
キャストで演算結果がかわるから当たり前

↓もしかしてpとqは同じ結果になるとか思ってんの
void* p_aho;
void* p = (char*)aho+1;
void* q = (short*)aho+1;


まずポインタがなんなのか分かってない
頭わるう
617デフォルトの名無しさん (ワッチョイ 1e80-2dqZ)
垢版 |
2018/12/17(月) 22:06:29.28ID:4lEE+Jgc0
ジェネリックポインターがどういうもんかすら分かってない低学歴知恵遅れが
低学歴知恵遅れのvoid君をバカにしてんのか

コレは滑稽
2018/12/17(月) 22:08:35.85ID:epqh6mY00
void君かな?
619デフォルトの名無しさん (ワッチョイ 1e80-2dqZ)
垢版 |
2018/12/17(月) 22:09:18.40ID:4lEE+Jgc0
顔真っ赤にしてるし
620デフォルトの名無しさん (ワッチョイ 1e80-2dqZ)
垢版 |
2018/12/17(月) 22:10:03.38ID:4lEE+Jgc0
省略可能()だって
コレは面白いことをおっしゃる
2018/12/17(月) 22:40:03.34ID:kePHxvF20
初心者です。
voidが存在しない時代のC言語では、関数の戻り値などはどのように記述していたのでしょうか。
良かったら教えてください。
2018/12/17(月) 22:44:15.58ID:P/jTcJUAa
最初は戻り値はintのみのはず。
2018/12/17(月) 22:45:59.53ID:5htGqSBWH
何も書かないとint
2018/12/17(月) 22:46:17.04ID:YSKVu3hZM
>>607
Linuxのデバイスドライバ
2018/12/17(月) 22:53:04.98ID:kePHxvF20
>>622,623
なるほど何も書かずにいきなり関数名とかだったんですね。
そうすると自然に戻り値はint型として扱われる感じなんですね。
ありがとうございます。
2018/12/17(月) 23:10:51.39ID:m222wRI70
>>603-604
結局連呼しか出来ないのか。
そしてそれがお前自身初心者で老害な証明であることにも気づけないんだろ。
お前ら本当に終わってる。


が、まあ、それはさておき、他人を追い落としたいのなら、
ネガティブキャンペーンではなく、ポジティブな競争を仕掛けろ。
つまり、俺よりもっと的確なアドバイスが出来れば、当然俺より上だというわけだ。
半角君がいいとは思わないが、少なくとも彼はこれをやってるだけマシだ。

東亜板の連中なんて馬鹿が大半で、本質が見えてない。
だから非韓三原則や法則

韓国人は、助けない、教えない、関わらない
韓国人と関わると不幸になる

なんてのを「韓国人」属性に結びつけているが、実際はそうじゃない。
(理由は他にもあるが、一つには)連中はネガティブキャンペーン『しか』やらないから、
結果的にそれに巻き込まれ、不幸になるだけだ。
そしてそれは今のお前ら池沼ゆとりにも当てはまる。
ゆとりなんて叩きたがっている奴はいくらでもいる。
馬鹿共がそれに気づいたら、お前らもっと終わるぞ。
その癖はマジでさっさと直せ。

ウンコを投げ合っていたとしても、それがポジティブ方向への競争なら、
だんだんマシにはなるんだよ。
お前らもちゃんとそれに参加しろ。
627デフォルトの名無しさん (ワッチョイ 1e80-2dqZ)
垢版 |
2018/12/17(月) 23:38:18.98ID:4lEE+Jgc0
void君の場合、キミラみたいにとてつもなく頭悪いワケでない
void君は、頭おかしい

頭おかしいから無罪
責任能力がない
2018/12/17(月) 23:58:26.51ID:TMWWsAye0
>>627
私とおんなじ刑法39条適用組ですね!
2018/12/18(火) 00:26:04.62ID:qkRcBu1Pa
みんな仲間さ
2018/12/18(火) 00:28:28.60ID:RutBA2Qm0
>>626
そもそもウンコだって分かってるのに投げるなよ
2018/12/18(火) 00:54:59.12ID:GicIxRpF0
>>630
> ワッチョイ aaf9-fk3u
死ね

つーか、お前みたいな奴しかいないからゆとりは駄目なんだよ。
文句言う前に何でもいいから知ってる範囲で何か言え。
そしてそれが有効打かどうかを競うんだよ。
それすらしない奴には文句を言う権利すらないんだよ。

お前らは分かってないんだろうが、マジな話、
「ゆとり★ちゃんねる(仮称)」が未だに存在しないのもおかしな話なんだよ。
お前らゆとりはゆとり内で確実に内ゲバしてる。(自覚症状はないのだと思うが)
原因はお前らのその態度だと思うぞ。足を引っ張り合ってる。
632デフォルトの名無しさん (ワッチョイ 069f-ez/E)
垢版 |
2018/12/18(火) 01:29:36.53ID:HuP+yDtL0
おだいじに
2018/12/18(火) 01:42:38.54ID:AChTjxH60
void* を大きさ1として演算できちゃう gcc 拡張がキモイ
2018/12/18(火) 06:36:55.66ID:xgHv4hiI0
> f34f-rp3U

効いてる効いてるw
635デフォルトの名無しさん (アウアウウー Sa4f-mTCp)
垢版 |
2018/12/18(火) 09:31:46.74ID:92SsvGE7a
>>633
俺も最初知った時は驚いた。
2018/12/18(火) 09:36:54.35ID:6efkgyQbM
>>626
的確なアドバイスとかどこの口が言ってんだよwww
voidもunsignedも知らないレベルなのに初心者をとっちめて追い返してるだけじゃん。ホント屑
2018/12/18(火) 09:40:18.56ID:xgHv4hiI0
registerと書いたら何がまずいのか説明マダー?(tntn
638デフォルトの名無しさん (JP 0Hd7-GyNv)
垢版 |
2018/12/18(火) 17:11:09.05ID:272sPWG0H
#include<stdio.h>
#define N 5

int sum(int *p){

int wa=*p,i,a[N],k;

for(i=1;i<N;++i){
wa=wa+*(p+i);
}
return(wa);
}

main(){
int a[N];
int i;

for(i=0;i<N;++i){
scanf("%d",&a[i]);
}
printf("%d\n",sum(a));
}
639デフォルトの名無しさん (JP 0Hd7-GyNv)
垢版 |
2018/12/18(火) 17:11:45.38ID:272sPWG0H
#include<stdio.h>
#define N 5

int sum(int p[]){

int wa=p[0],i,a[N],k;

for(i=1;i<N;++i){
wa=wa+p[i];
}
return(wa);
}

main(){
int a[N];
int i;

for(i=0;i<N;++i){
scanf("%d",&a[i]);
}
printf("%d\n",sum(a));
}
640デフォルトの名無しさん (JP 0Hd7-GyNv)
垢版 |
2018/12/18(火) 17:12:09.11ID:272sPWG0H
#include<stdio.h>
#define N 5
#include<math.h>

float vecNorm(int *p){

int wa=*p**p,i;
float ans=0;
wa=0;

for(i=1;i<N;++i){
wa=wa+*(p+i)**(p+i);
}

ans=sqrt(wa);
return(ans);

}


main(){

int a[N];
int i;

printf("enter vec:");
for(i=0;i<N;++i){
scanf("%d",&a[i]);
}
printf("norm=%f\n",vecNorm(a));
}
641デフォルトの名無しさん (ワッチョイ 6d61-u3CH)
垢版 |
2018/12/20(木) 01:12:02.01ID:PGlfyh8s0
PARI/GPでの多項式の割り算について
例えば Mod(x^5,x^2-x-1) と入力すると
Mod(5*x+3,x^2-x-1)
と出力されます。
この剰余類 5*x+3 を多項式として次に使いたいのですが
一度コピペして貼りつける以外の方法はありますか?
642デフォルトの名無しさん (JP 0H4b-stut)
垢版 |
2018/12/20(木) 14:46:32.32ID:dwI07DhgH
うちの大学の線形リストのノードの削除方法が異端なんだけど、本当にあってるのか教えて
コードはコレ
http://www.cc.kyoto-su.ac.jp/~yamada/ap/list.html#delete
次ノードの繋ぎ変えしてないしワケわからん
643デフォルトの名無しさん (JP 0H4b-stut)
垢版 |
2018/12/20(木) 14:49:53.65ID:dwI07DhgH
if文の中でやってるところが意味不明で
2018/12/20(木) 15:23:58.12ID:HJafH88zx
ヒント
ndPtrPtrは次のノードを示すアドレスが格納されている変数のアドレス、言い換えるとnextメンバのアドレス。
2018/12/20(木) 15:23:59.11ID:pLjZUA4qM
あってる。異端でもなんでもない
2018/12/20(木) 15:33:59.42ID:mvSJol6Sa
>>642
それ以外の方法あるか?
まあ変数の使い方はいろいろあると思うけど
2018/12/20(木) 15:56:04.93ID:7Qt44qX50
>free(*ndPtrPtr);
これを
free(ndPtrPtr);
と誤読してちょっと頭抱えた。
2018/12/20(木) 16:20:36.96ID:HdfUNn3W0
int nodeDelete(node_t **ndPtrPtr, int n) 内の
if (*ndPtrPtr != NULL) ...
が分からんとすれば、その前のwhileブロックから抜ける条件・
抜けたときの状態を把握できてないんだと思うぞ。

whileブロックの動作を再考する方が早いかも知れん。
n == 0 の場合
0 < n, n < リストのノード数 の場合
n >= リストのノード数 の場合
649デフォルトの名無しさん (スプッッ Sd03-stut)
垢版 |
2018/12/20(木) 16:27:02.34ID:ebMind6hd
理解したわ
ポインタがなに指してるか理解不足だったわ
2018/12/20(木) 16:50:21.12ID:+Bqr0ubdM
自分の理解不足を棚に上げて人様の正統なコードを異端呼ばわりしたことについて一言。
2018/12/20(木) 18:53:47.26ID:As7dWUw1M
まあ初心者にはありがちだし正直に理解不足認めてるんだからくだらんことで話引っ張るなよ
2018/12/20(木) 20:34:36.71ID:RsFs7LFZM
>>642
異端じゃないがセンスはない
線形リストなんてlist_headが決定版なんだからそれだけ覚えておけばいい
2018/12/20(木) 23:55:08.25ID:y9sbY0Ic0
>>642
異端っちゃ異端。普通は以下。
typedef struct nodetag {
struct nodetag *next; // 走査を速める為に先頭、と言うか本質部分は前側に
data_t data; // dataが最後、と言うかオマケ類は全部最後、そうじゃないと継承出来ないし
};
int nodeDelete(node_t **ndPtrPtr, node_t *ndPtr); // n番目を指定とかありえん、リストはそういう使い方はしない
int nodeDelete(node_t **ndPtrPtr, data_t data); // またはこれ

コンテナ類なんてOOPがドフィットするんだから、OOP的に書かないと駄目なんだよ。
こいつはそれが出来ていない。
リストを使ったこと無い奴がとりあえず書いてみました、というコードであり、良いコードではない。


池沼ゆとりが多いようなので明記しておくが、
お前らは『老害』に『年齢条項』を入れてゆとり≒20代は該当しない、ということにしたがるが、それは間違いだ。
老害の定義は、公平には、

・その問題に、より効率的に対処できる新しい方法があるにも関わらず、
古い方法しか使わない/使えない馬鹿

の事だ。
OOPなんて30年前にC++により再定義され、大変素晴らしかったからほぼ全部の言語に採用されてる。
今時OOPを理解してないのも、またコンテナ等OOPに最適なものにOOPを適用しないのも老害だ。
そしてこの老害コードで学ぶ>>642もまた、最初から「老害」となる。
(642が悪いわけではないが、教科書のコードに問題があり、「老害」からのスタートになる)

分かるか?
老害の十分条件には「知っているけど使わない」のみならず、単に「知らない」も入るんだよ。
このコードに問題を検出出来ないのなら、その時点で老害だ。
それはOOPを知らない、ということだから。
重ねて言うが、老害に年齢は関係ない。実際、池沼ゆとりの大半が既に老害になってるだろ。
2018/12/21(金) 00:27:52.80ID:pse73zvs0
「そうじゃないと継承できないし」
見事に手段が目的化してるな。
OOPがクソ宗教ってはっきり分かんだね。
2018/12/21(金) 00:46:55.39ID:e7/cJrp90
>>654
絵に描いたような老害乙

Javaみたいに全部無理矢理OOPは問題があるとして、
C++の範囲で普通に使う分には問題ないし、今更OOPに文句言うのも老害だろ。
第一世代はCが制覇したが、第二世代はOOPが制覇してる。
その理由を考えろ。
2018/12/21(金) 01:00:18.07ID:hN5N0o1Ma
リストは順序あるでしょ。
657デフォルトの名無しさん (ワッチョイ cb80-5YD5)
垢版 |
2018/12/21(金) 01:08:54.29ID:j37Ohb1y0
普通にほとんどのOSはCで書かれてる
いまでもCが天下
658デフォルトの名無しさん (ワッチョイ cb80-5YD5)
垢版 |
2018/12/21(金) 01:11:08.64ID:j37Ohb1y0
OSのアプリケーションインターフェースは
ほぼすべてC

Cのインターフェースをそのまま使えないウンコ言語なんか
使い物にならない
2018/12/21(金) 01:27:10.71ID:+b5aVjIs0
>>653
痛いなー。もういろいろ悔しくて仕方ないってことは伝わったよ
2018/12/21(金) 01:52:35.34ID:e7/cJrp90
>>656
お前もリスト使った事無いのに、何故文句だけ言うの?
それがゆとりが駄目なところだ。死ね。

ていうかマジな話、ゆとりが未だにゆとりなのはこれが原因だと思うぜ。
お前ら自身がおかしな方向に誘導しまくってる結果、
ゆとり『だけ』のコミュニティでは収拾がつかず、コミュニティを保てない。
だからお前らは年齢層が高くて居心地が悪いと分かり切っているここ2chに出張ってくるしかないわけでさ。
これは俺らにとっても迷惑だし、お前らにとっても不幸な話だぞ。

インタフェース自体は、実際使えば「これは間違いだ」とすぐ分かる。
n番目、でリストを管理するなんてあり得ないから。
ただ、使ったことが無くとも、C++等参考にすれば、正しい方向には進めるだろ。
それもせず、とりあえず文句を言うその癖はマジで早く直せ。
お前ら自身がそれで被害を被っている。(自覚出来ていないようだが)

https://ja.cppreference.com/w/cpp/container/list/erase
https://docs.microsoft.com/ja-jp/dotnet/api/system.collections.generic.linkedlist-1.remove?view=netframework-4.7.2

C++は「イテレータ()」とかアホなことやってるから余計に分かりにくくなってるが、この場合は「ポインタ」だと思っていい。
(というか、OOPのイテレータは糞だ。これは認める。あれはおそらくJavaが元凶だが)
.NETはまんまだが、Node<T>は参照渡しになるからこれも「ポインタ」だと思っていい。

ここら辺も調べればすぐ分かる話でさ、この意味ではその京産大の先公は「老害」だと断定出来る。
過去スレで東工大のリストが出てたろ。あっち見た方がいいと思うぜ。


>>659
お前がな。
だだこねれば受け入れられるのはゆとりコミュニティ内だけの話であって、マジで迷惑だから止めろ。
上記の通り、そのコードは一般的に見て「かなり間違った」事をやってる。
それを見分ける能力もないのに文句だけ言うなゴミゆとり。
2018/12/21(金) 02:19:18.24ID:lfxw1L5ka
リストは順序あるよ
662デフォルトの名無しさん (ワッチョイ 9b9f-t5R+)
垢版 |
2018/12/21(金) 02:30:30.08ID:UIMsFVlQ0
あるある。
2018/12/21(金) 05:32:19.37ID:lsetsG4i0
C言語で継承とか意識しなくちゃいけないんですか?
2018/12/21(金) 05:50:21.94ID:FGbnqlsP0
>>653
1つの方法が絶対と思い込んでるおまえこそ老害の典型だ
頭固すぎ
2018/12/21(金) 05:51:36.03ID:FGbnqlsP0
>>663
そもそもだよな
2018/12/21(金) 06:29:14.35ID:PkTs+Gix0
最近継承とか覚えたから誰かに話したくてしょうがないんだろ w
まあ気持ちはわかるが
667デフォルトの名無しさん (ワッチョイ 9b9f-t5R+)
垢版 |
2018/12/21(金) 08:37:47.92ID:UIMsFVlQ0
そう言えばそうじゃないと継承できないって、もしやC++特有の決まりなのかな?
クラスが作れる言語でクラス変数の宣言の順序が関係する言語を知らんのだけど。
2018/12/21(金) 08:51:45.23ID:9Mj5/4cfM
継承って、OOP三本柱、継承・多態・カプセル化のうち最も早く信用を失った要素じゃん。
今じゃ当のOOP界隈自身が継承より委譲とか言っちゃってる。
2018/12/21(金) 09:43:00.98ID:C5YB7rUV0
多態こそがOOPの本質だと思っているので
それ以外はオマケ程度にしか見てないです
2018/12/21(金) 12:03:47.45ID:FGbnqlsP0
スレチ
C++スレでやれ
2018/12/21(金) 12:08:33.02ID:coLyQ5Vra
メッセージングです
2018/12/21(金) 12:14:41.72ID:PRxQR0TH0
664 名前:デフォルトの名無しさん (ワッチョイ 236e-q1e7)[sage] 投稿日:2018/12/21(金) 05:50:21.94 ID:FGbnqlsP0 [1/3]
>>653
1つの方法が絶対と思い込んでるおまえこそ老害の典型だ
頭固すぎ

665 名前:デフォルトの名無しさん (ワッチョイ 236e-q1e7)[sage] 投稿日:2018/12/21(金) 05:51:36.03 ID:FGbnqlsP0 [2/3]
>>663
そもそもだよな

670 名前:デフォルトの名無しさん (ワッチョイ 236e-q1e7)[sage] 投稿日:2018/12/21(金) 12:03:47.45 ID:FGbnqlsP0 [3/3]
スレチ
C++スレでやれ
2018/12/21(金) 12:30:50.77ID:choQhZIjM
>>667
> そう言えばそうじゃないと継承できないって、もしやC++特有の決まりなのかな?
そんなわけあるか w
そもそも>>653の奴を継承って言うこと自体がちょっとおかしい
2018/12/21(金) 12:39:24.63ID:FGbnqlsP0
>>672
何か用か?
2018/12/21(金) 12:52:04.69ID:lfxw1L5ka
継承を頑張ったプログラムって、疎結合・高凝集からどんどん外れていく運命にあるんだよね。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況