C言語なら俺に聞け 158

レス数が950を超えています。1000を超えると書き込みができなくなります。
2021/12/25(土) 12:11:46.61ID:xxeaCAplM
!extend:checked:vvvvv:1000:512
(新スレ立ての際上記コマンドを2行書き込んでください)
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/

C17
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4713.pdf

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言語なら俺に聞け 157
https://mevius.5ch.net/test/read.cgi/tech/1624846971/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2022/07/24(日) 18:23:35.95ID:nci3iowod
>>893
>デバッグ箇所の発見
バグ箇所のことかな
どうしてそのようなバグが発生したかまで明確にしないと
同じバグがまた起こるだろう
2022/07/24(日) 18:43:56.60ID:3i0SwxtcH
>>895
話をずらしましたね

私は
>デバッグ箇所の発見
つまり、どこから手をつければいいか当たりをつける能力について言及したのであって、発見したバグの振る舞いについて説明する必要はないとはいっていませんね

話をずらしてはいけませんよね
2022/07/24(日) 18:49:15.54ID:DQlWH9SB0
どこにバグがあるか、ゴーストがささやいてくれる
2022/07/24(日) 18:52:37.42ID:cLNfquIV0
言い逃れの天才はいらねーよ
頼むから志願してくんな
ゴミ処理だけでどんだけ負担か考えろ馬鹿が
2022/07/24(日) 18:54:41.69ID:cLNfquIV0
それで給料くださいだと? 金銭感覚が絶望的にバグってる超危険人物め
2022/07/24(日) 19:03:04.31ID:DQlWH9SB0
そういう人物は確かにいる
システム障害時に、数分で原因を調べ上げ復旧する奴
2022/07/24(日) 19:24:24.29ID:ZZNXvMhPH
>>900
その人なりのロジックがちゃんとあるけれども、凡人には理解できないのかもしれませんね…
まあ意識(ロジック)も無意識もフルに総動員しているとは思いますが

>>891
あくまでとある仮説に興味がある、といっているだけで、それですべてを説明しようとは思っていませんよ
それにしても「準備運動電位」、あなたはどう説明しますか?
2022/07/24(日) 19:27:04.95ID:cLNfquIV0
電位ってそれ以上でもそれ以下でもないな
喩え話でもしたいようだが、この世界では究極の最重度池沼ってだけw
2022/07/24(日) 19:32:05.82ID:bdlqmtah0
>>896
でかいシステムなら分割して調査することもあるからどこから調査するとかどうやって調査するかとか事前に決めるのは珍しくないぞ
そんなことも知らないのはお前の経験値が低いだけ
2022/07/24(日) 19:58:27.05ID:3wgufn1TH
>>903
そんなことはあたりまえでしょう?
手当たりしだいにしらみつぶしに見てバグが見つかるとでも?

でもね、凡人が見当もつかない糸口をたどって(バグつぶしに限らず)問題解決を行う現場を見てきましたよ
そういう人間の考え方が、単にロジック一辺倒ではないのでは?という切り口で話をしているものだと思っているのですが

あるいは自分のコーディングの最中に自分のミス・バグを見つけ出すのは、最初自分が正しいと考えているだけに、結構難しいことだと思っているのですが、
そういうときは非凡な人はどういう思考方法をとっているものなんでしょうか?
905デフォルトの名無しさん (アウアウウー Sa5d-R4TS)
垢版 |
2022/07/24(日) 20:09:14.55ID:IZxLU3+7a
自分が正しいと考えていないに決まってるだろ
2022/07/24(日) 20:21:06.06ID:bdlqmtah0
>>904
> 手当たりしだいにしらみつぶしに見てバグが見つかるとでも?
それでないと見つからないバグもある

> でもね、凡人が見当もつかない糸口をたどって(バグつぶしに限らず)問題解決を行う現場を見てきましたよ
そう言うのは経験値が違う
まあその考え方を文書化できるかどうかは別の話

> あるいは自分のコーディングの最中に自分のミス・バグを見つけ出すのは、最初自分が正しいと考えているだけに、結構難しいことだと思っているのですが、
> そういうときは非凡な人はどういう思考方法をとっているものなんでしょうか?
お前はテストもしないのかよ
907デフォルトの名無しさん (ワッチョイ 13ad-SXL5)
垢版 |
2022/07/24(日) 21:29:00.78ID:9ixHhHoi0
スレが活性化したようだな。
読む気が起こらんけど。
2022/07/24(日) 21:42:14.57ID:lVfeNqR1r
全然、C言語の話にならんな
2022/07/24(日) 21:44:29.10ID:+vY6C834M
話題に参加できない…
2022/07/25(月) 06:28:56.85ID:DH7dOKBU0
何でしらみつぶしが出てくるんだ
不具合の内容から疑われることを挙げて
排除できる項目を排除して疑う範囲を狭めていくにあたり
論理思考が得意なやつとそうでないやつの違いが出るってだけだ
2022/07/25(月) 07:35:59.20ID:fNFid1J7H
>>910
バグの排除にロジックが必要なのは当然ですが、それだけではないでしょう?
特に自分のバグを外すには、そもそも自分のロジックを疑うという能力は、ロジックを使うのはまず困難なのでは?
2022/07/25(月) 07:56:46.33ID:GzNr1keE0
>>910
疑う範囲を狭めて最後はしらみつぶしとか普通にあるだろ
なぜ排他だと思った?
2022/07/25(月) 08:14:58.48ID:DH7dOKBU0
バグの排除とは言ってない
疑いが晴れたものを検査から除外するということだ

なぜ排他が出てくるのか脈絡がわからない
2022/07/25(月) 09:21:33.29ID:/kQlrWHQa
>>913
> バグの排除とは言ってない
おれも言ってないけど?

> 疑いが晴れたものを検査から除外するということだ
検査の意味がわからんが調査のことならしらみつぶしは疑いを晴らす方法の一つ

> なぜ排他が出てくるのか脈絡がわからない
お前がしらみつぶしを排除しようとしてるから
2022/07/25(月) 09:31:36.48ID:DH7dOKBU0
アホ検知用にわざとアンカー貼らなかったら見事に引っかかったなw
2022/07/25(月) 09:53:41.75ID:GzNr1keE0
なにを引っ掛けたつもりになってるのかさっぱりわからん
まあまともなレスを返せなくなったんだろうなw
2022/07/25(月) 11:30:58.60ID:TD+9RuG80
仕事している人は、こんなところで遊んではいない
918デフォルトの名無しさん (アウアウウー Sa5d-R4TS)
垢版 |
2022/07/25(月) 11:45:05.33ID:dJJE5upaa
C++の話題は禁止?
2022/07/25(月) 11:49:31.88ID:TD+9RuG80
禁止ではないと思うが、スレ違い扱い受ける
2022/07/25(月) 12:13:08.37ID:n7JQk0Isd
>>901
ただのDSPだろう
CPU(脳)が応答していては間に合わない用途のためにプログラマブルなDSPがある
ボールが見えてから打つかどうか決めていては間に合わない
このコースに来たらバットを振れと反射神経をプログラムできるようになっている
それがあたかも脳の判断に先行してるように見えるだけ
2022/07/25(月) 12:52:39.70ID:BRC10lp0d
>>914
流れ読めてないアフォハケーン
2022/07/25(月) 13:27:55.29ID:GzNr1keE0
>>921
レスできなくなって流れが読めてない~ってバカ?w
2022/07/25(月) 13:30:31.02ID:lj82liZDM
シーッ
2022/07/25(月) 15:49:07.62ID:iiUi9YtaA
はっきり言ってやらなきゃ解らんようだな
バグの排除と言ったのが誰なのか
おまえ読み間違えてんだよ
2022/07/25(月) 15:58:23.55ID:GzNr1keE0
>>924
だから>>911なんて俺には関係ないだろ
アンカーもまともに追えないのか?
2022/07/25(月) 16:01:28.30ID:TD+9RuG80
ロジックは合っているがバグだ、というのは割とよくある(まれにではない)
2022/07/25(月) 16:36:40.16ID:GzNr1keE0
>>926
・仕様バグ
・非同期処理絡み
・限界値オーバー等
それ以外ってあったっけ?
2022/07/25(月) 17:00:35.20ID:TD+9RuG80
今は昔、DBが気軽に使えなかったシステムがあった。
プレーンファイルにデータが格納されていた。
お客の要求は、
「その中からキャンセルされたデータを見つけ、取り除いてくれ。件数は高々数十件のはず」
当時のSEは、キャセルデータ一覧から一つずつデータを取り出し、
格納されたファイルから見つけてはキャンセルフラグをセットしていく
という設計をした。スッキリした設計で、客のレビューも通った。
プログラマは仕様書通りにプログラムを作成した。
実運用に入ったところ、この処理がいつまで経っても(何時間も)終わらない事態になった。

原因調査を依頼され、調べて対処方法を提案し、
プログラムの手直しをした。
その結果、処理は10分程度で終わる様になった。

実データは、お客の想定よりは多かった(と言っても100件程度だったが)ことと
試験環境が貧弱で、性能評価が不十分だったことが挙げられた(公式見解)。
2022/07/25(月) 17:06:35.01ID:p29EsXcp0
今は昔 ドラゴンボールというものありけり
7つ集めないと気軽に使えなかった
2022/07/25(月) 19:19:30.93ID:0R5nn0qA0
非同期やマルチスレッドなんかの 暗に平行に動いてるようなやつ
の想定順序外の順で進んでったとき
2022/07/25(月) 19:25:09.85ID:gun8tVmY0
昔のプログラム系コラムで(うろ覚えなんで改変あり)
統計計算するコード書いて、
自分で用意したデータでは問題なかったが、
デバッガ―チームのデータでは誤差が酷いとの報告が。
変数をfloatからdoubleにしても改善せず、
使ったテストデータ見せてもらったら数値が10兆のや1/10兆のまであったとかなんとか。
932デフォルトの名無しさん (ワッチョイ 8bbb-OROS)
垢版 |
2022/07/25(月) 19:42:53.87ID:uz33IoOs0
それって範囲チェックを怠った普通のバグよね?
2022/07/25(月) 20:13:02.04ID:GzNr1keE0
>>928,931
件数や数値の範囲を規定してなかったんだろうな
規定してたらテストしてるだろうし
>>928の方はキャンセルする件数も重要だけど変更するプレーンファイルのサイズも重要
2022/07/25(月) 21:04:57.01ID:TD+9RuG80
仕様通りに作ってあるってことで
どこもバグだと認めず、修正にかかれなかった
2022/07/25(月) 21:23:11.69ID:GzNr1keE0
実行時間の上限も書いてなかったんでしょ?
ならバグじゃないからそりゃ誰も修正しないよね
2022/07/25(月) 22:30:59.72ID:TD+9RuG80
そうもいかん
放置すれば業務が止まる
2022/07/26(火) 04:44:04.50ID:1cOtUCQ/0
なら仕様を作った奴がポンコツだったってだけの話
2022/07/26(火) 06:23:30.91ID:3o/UjHLA0
>>937
奈良仕様... 要人警護でバグるんだな。
2022/07/26(火) 15:23:03.61ID:SJaqZdjxH
>>920
それは条件反射ではない普通の「反射」
か、あるいは条件反射ですね

「準備運動電位」
https://ja.wikipedia.org/wiki/%E3%83%99%E3%83%B3%E3%82%B8%E3%83%A3%E3%83%9F%E3%83%B3%E3%83%BB%E3%83%AA%E3%83%99%E3%83%83%E3%83%88
1970年代に行われた実験により、ボタンを押す・指を一本曲げる、手首を曲げる等運動の先立って脳に変化が起こる、という観測結果が得られています
2008 年には、被験者が意思決定をするよりも最大 7 秒先立って脳活動が認められる、という^報告がありました
2022/07/26(火) 18:24:38.80ID:fW/tQ0510
その生理現象を検知して価値を生み出すコードを書くならともかく
精神論や根性論の類いに持ち出す野郎はスレチ
2022/07/26(火) 20:36:46.75ID:s+/k7yg8H
>>940
ええ、バグ取りに使えないものかと
異様にバグ取りがうまい人の頭の使い方について話題にしようと思ったんですよ
2022/07/26(火) 20:59:48.42ID:RzFS95olr
そんなの経験の差でしょ
脳科学なんかを引くより経験積んだほうが実用的で合理的
2022/07/26(火) 21:21:37.87ID:LALlY+2gH
>>942
いつまでも KKD ではねえ
もう少し精緻な話がしたいものです
2022/07/26(火) 21:22:24.36ID:4nABh0qj0
バグ取りの上手い人というか、発見が早い人は
アスペ気味の人が多い
これは悪い意味で言っているのではなく
天才肌というか、直感でものを把握出来る人という意味です
2022/07/26(火) 21:24:16.26ID:LALlY+2gH
>>944
それもアラアラな話だと思いますが
しかし、その直感でものを把握できる、ってのがどういう思考法なのか興味がありますね
もう少しそのタイプのプロフィールを教えていただけませんか?
2022/07/26(火) 21:33:29.39ID:4nABh0qj0
そういうのは、誰もマネが出来ないから参考にするのは無理でしょう
脳細胞のシナプスからして違うかもしれないし
2022/07/26(火) 21:58:01.96ID:SFGiBpCod
プログラムの仕組みを完全に理解したいなら、ITパスポート、基本情報、コンピュータサイエンスの3つ。
2022/07/28(木) 12:32:34.18ID:FYpyeWPbd
>>941
C++の話ではないね
2022/07/28(木) 14:58:27.27ID:9giz0zU00
あ、Cだった
同じことだが
2022/07/28(木) 15:27:42.65ID:hSAjJRb60
混ぜたら駄目、危険!
2022/07/28(木) 17:42:15.99ID:9giz0zU00
プロの化学者つかまえて次亜塩素酸ナトリウムと塩酸を混ぜるなとドヤるアホ
みたいなもんだな
2022/07/28(木) 17:53:09.20ID:j+X5VIDEM
混ぜるな危険
ECMA 372
2022/07/28(木) 19:46:49.41ID:X16X3UK80
>>945
直感って大抵は経験に基づくショートカット。
常人でも意識しながら年単位でデバッグ続けてりゃ多少は身につくんじゃねの?
2022/07/28(木) 20:04:33.20ID:KHWw5jDSH
>>953
身につくかどうか、ではなく、どんな考え方、思考法、そして可能であればその思考法に似た行動様式等がざっくばらんに出てくることを期待します
955デフォルトの名無しさん (アウアウウー Sa5d-R4TS)
垢版 |
2022/07/29(金) 10:43:07.31ID:nIcw6oQba
>>954
鏡で自分の顔を観てバグを一覧にしてみ
良い訓練になる
2022/07/29(金) 13:39:55.55ID:LR/vrGjN0
これ俺の顔じゃない
鏡がバグってる
2022/07/30(土) 00:46:07.92ID:wZaxY20D0
組み込みの世界ってまだC言語が主流ですよね?
IoTも同じ?
2022/07/30(土) 00:52:24.51ID:B4kVDCsM0
IoT というのは広い概念なのでそれだけではなんとも言えん。
低レイヤもあれば高レイヤもある。
2022/07/30(土) 13:46:54.93ID:kKuVH5i8M
I Of the Tiger
2022/07/30(土) 15:28:57.06ID:sZRL8Eez0
Intensity Output Time
2022/07/30(土) 16:11:54.93ID:2k62MWGF0
次のCの仕様が出てくるというのにこのスレでは全く話題にならないんだな
2022/07/30(土) 16:16:00.43ID:dAB37O5c0
tccで標準入力からソース読むプログラムに、さらにstdinからデータ読ませるのは無理ですかね?
(echo "ccode with stdin" | tcc -run - ) <file
みたいな感じで(fileまでソースと取られてコンパイルエラー)
一時ファイル作れば出来るけど、ちょっとワンライナー書くときに不便を感じる

echo "main(char*c, char**v){puts(v[0]);puts(__FILE__);}" | tcc -run -

-
<stdin>
を出力します、多分tccはプロセスを自己書き換えで置き換えるんでしょうか?ファイルハンドルが継承されてる?
2022/07/30(土) 16:20:55.72ID:2BJ7IgJr0
新しいCってそもそもどこで需要があるんだろう
2022/07/30(土) 16:38:39.78ID:wZaxY20D0
>>958
高レイヤーだと普通にリッチな言語が使われたりするのかな

>>961
deferが入るかもって別スレで見かけたけど本当?
2022/07/30(土) 16:55:11.02ID:KiVbgp3AM
組み込みと言ってもラズパイ環境では完全にPythonが主流でC/C++(gcc)はあまり利用されてないイメージがある
2022/07/30(土) 17:15:44.08ID:rf6S0zxh0
組込って普通は静的バイナリにするんじゃないの
2022/07/30(土) 17:20:48.89ID:B4kVDCsM0
>>964
C23 には defer は入らない見込み。 全体としては C++ の後追い的な変更が多い。

auto が型推論付きの変数定義になるだとか、constexpr や nullptr が導入されるだとか、
属性の表記法が C++ 風の [[ ]] を使った形になるだとか、そういう感じのやつ。
(ちなみに今回導入される constexpr は変数には付けられるが関数には付けられないので
コンパイル時プログラミングが C++ みたいに出来るわけではない。
定数式の成立要件が C と C++ で違うので C++ 寄りにする追加機能。)

思い切った変更ではあるが、根本的なプログラミングスタイルを変えない程度のバランスのとれたところだと思う。
2022/07/30(土) 17:34:09.22ID:B4kVDCsM0
>>966
もちろんそういう部分も大きいけど……。
リッチな組み込みは一昔前のパソコンを超えるくらいの性能はあるし Linux くらいは載るので、
デバイスドライバさえ用意すればあとはパソコンみたいに使えるという場合は普通にある。
かつては組み込みと言えばそのデバイスドライバの部分こそ大きかったと思うんだが、
IoT を意識するレベルの製品だとアプリケーションレイヤが巨大なので Python くらいは動くこともあるだろう。
主流かというとちょっと疑問ではあるが……。
2022/07/30(土) 17:38:53.84ID:rf6S0zxh0
それは組み込みと言うより、OS上で動かしている単なるアプリだろう
2022/07/30(土) 17:48:55.44ID:lDkW8Lp7M
https://www.google.co.jp/search?q=raspberry+pi+%E9%96%8B%E7%99%BA%E8%A8%80%E8%AA%9E
2022/07/30(土) 17:50:58.85ID:rf6S0zxh0
パソコンで同じことやっても組み込みなんて言わないし
2022/07/30(土) 18:00:48.67ID:jaybBP1OM
組み込みの開発はクロス開発が基本なのでパソコンはただの端末だけどね
プログラムはボード上のSoCで実行される
2022/07/30(土) 19:32:55.53ID:wZaxY20D0
IoTにはC言語は深く入り込んでないのか

>>967
型推論付くってマジ?
個人的には嬉しい
2022/07/30(土) 19:50:32.99ID:zHogqexf0
>>964
> 高レイヤーだと普通にリッチな言語が使われたりするのかな
複合機などはWebサーバー程度は普通に入ってるから設定画面等は HTML, JavaScript, CSS, Python を使ってたりする

IWS (Internal Web Server:HTML, JavaScript, CSS, Python)
https://dsp.konicaminolta.jp/best-program

もちろんOS上で動いてるし、でかいシステムだとPCその物を内蔵してたりすることもある
なのでこんなものが売られてる
https://jpn.nec.com/fc/index.html
2022/07/30(土) 19:51:42.13ID:DgXxKl0UM
IoTというよりはスタンドアローン環境か小規模な独自ネットワーク程度の組み込み分野の方がC/C++利用は多いと思う
2022/07/30(土) 23:12:48.90ID:wZaxY20D0
>>974
こういう機材に囲まれたことないなー
俺はIoTは名前だけでほんとに実感がない
2022/07/30(土) 23:53:43.60ID:B4kVDCsM0
>>969
機器に「組み込まれ」ているなら組み込みと呼んでいいだろう。
パソコンに近い構成にしてパソコンでも使えるソフトウェアを活用する場合があるというのは結果論だよ。
2022/07/31(日) 00:41:41.63ID:n00x/A2v0
そうなるとPC使っていても組み込み扱いして良いと言うことになりますよね
近い構成どころか、何でもありになりそう
2022/07/31(日) 01:25:42.56ID:9sXTRHUo0
そうだよ。
技術的な実態としてはそんなにはっきりした境界がない。 なんでもありだ。
用途の側でふんわりと分野が分かれてる。
2022/07/31(日) 01:39:56.41ID:AA5JChgka
組込とハード制御的なやつの混同はよくありますね
2022/07/31(日) 06:39:14.45ID:1QnevV7r0
>>961
Cは枯れた言語で今さら新機能は誰も望んでないからな
むしろ余計なことをしてくれるなと
2022/07/31(日) 14:01:45.17ID:k/gcENLBM
古いソースが問題なくコンパイル出来ないと、それはそれで問題にされる。
今でもトライグラフ受け入れないと駄目なんだろう
2022/07/31(日) 17:43:38.22ID:E3I5T4z5H
>>981
C99 の C++ との互換性がまったく取れていない変てこ機能はさっさと削除してほしいものです
いまや私は C のソースを書くのに C++ コンパイラが通るか試してみる体たらく、あれらはいったいなんなんだ?
2022/07/31(日) 19:20:45.67ID:9sXTRHUo0
今回「削除」になったのはいわゆるK&Rスタイルの関数定義くらいだな。
いずれ削除するということは以前から書かれてたし、
習慣的にも行儀が悪いという考え方が支配的だから
これで問題が起こるなら長い移行期間中に対応できてなかったほうが悪いと言ってよかろ。
2022/07/31(日) 19:35:38.56ID:n00x/A2v0
削除って事は、古いソースのコンパイルはもはや出来ないと言うことなんでしょうか
いや、なに、クラシックカーに乗ってみたい位の好奇心ですけど
2022/07/31(日) 19:46:09.16ID:sdKo2iJ+d
歳をとるということ 〃
シワが増えるということ 〃

なのに
ぼくたち
私たちは 〃

なぜ、最新機種で進化の止まった古臭いコンパイラを使うのでしょうか
でしょうか
2022/07/31(日) 20:23:09.10ID:9sXTRHUo0
>>985
削除された機能を使っていればそういうことになるが、
そもそも C で書かれたプログラムなんてどこかしらで環境依存な部分があるもんだし、
よほど配慮されたものでない限り古いコードは素直には動かないのが普通だろう。

まあ C23 が出来たからと言って C89 (に対応したコンパイラ) が直ちに消滅するわけでもないし、
なんだかんだであと二十年くらいたっても C89 派がそれなりにはいそうな気がする。
2022/07/31(日) 20:35:31.51ID:1QnevV7r0
K&R CこそCの面白さの塊なんだけどな
GCCが「カバにダンスを踊らせるのはあまり面白くない」なんて言ってた人もいるように
歳月とともに雁字搦めになっていく流れは酷くつまらない
2022/07/31(日) 20:47:12.68ID:TVIRLEiRH
>>988
でもね、C のコンパイラは C で記述してほしかったですね
確かにカバの調教は難しいのかもしれませんが
というか、gcc をコンパイルするためだけの c で書かれた c++ コンパイラって需要ありますかね?
2022/07/31(日) 20:51:31.04ID:PC792jYOa
>>988
無理すんなよ
2022/07/31(日) 20:59:27.98ID:sdKo2iJ+d
そろ次スレ
2022/07/31(日) 21:03:23.63ID:n00x/A2v0
ラージモデルでFarポインタ使いまくったプログラム合ったけど、
今は流石に見るのも嫌だと思う
何言ってるか分からないと思うが、俺も分からない
2022/07/31(日) 21:17:26.94ID:UwyiR8NW0
>>992
むしろnearポインタの方が面倒だと思うが...
2022/08/01(月) 08:38:31.30ID:wVsEVhkpr
あり人間とかキチガイ、こっちでも頓珍漢なこと書いてるのか
2022/08/01(月) 19:47:44.58ID:kaXTkJ9F0
>>992
ラージモデルの far ポインタでしょう?別に far とか書かなくても普通にポインタを書けば far ポインタになったはず
であれば、あとは 64kb の壁を意識してむやみにポインタのインクリメントをせずに上手に部分にわければなんとかなったでしょう

far ポインタでの経験はいろんな場所で活かせる貴重な体験だと思いますよ
私は試食版 LSI-C のスモールモデルで陽に far を指定して far ポインタをバリバリつかっていましたよ
スモールモデルだからコード領域はせまいけれども(near コールしか使えない)、far と書けばデータは 640KB までフルに使えましたし
レス数が950を超えています。1000を超えると書き込みができなくなります。