!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
C23 最新ドラフト
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.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言語なら俺に聞け 161
https://mevius.5ch.net/test/read.cgi/tech/1682053520/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
C言語なら俺に聞け 162
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 2389-FUJr)
2023/10/30(月) 17:13:00.82ID:hHEGE8Ol0222デフォルトの名無しさん (スップ Sdea-b4p5)
2023/12/08(金) 07:57:53.16ID:m+qJyEe4d 関数のサイズは関数のポインタをアドレス順にソートすれば求められる
そのサイズ分を実行可能領域にコピーすれば当然実行もできるよ
dllインジェクションとかでたまに使われる
そのサイズ分を実行可能領域にコピーすれば当然実行もできるよ
dllインジェクションとかでたまに使われる
223デフォルトの名無しさん (スップ Sd0a-Cw2Y)
2023/12/08(金) 08:01:58.55ID:ClTGg8d6d224はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a3e-By03)
2023/12/08(金) 09:53:49.26ID:B2zBKDAb0 >>217
マイクロソフトが出している公式のチュートリアルは C++ が基礎だけど
考え方としては C でも同じなのでそのへんは適当に読み替えながら……
https://learn.microsoft.com/ja-jp/windows/win32/
Win32 API は C で使ってもそんなに不便ではないように出来てる。
特に最も基礎のこのへんの例示のコードは (C++ とは書いてあるが) たぶん C としてコンパイルさせても通る。
https://learn.microsoft.com/ja-jp/windows/win32/learnwin32/your-first-windows-program
必要な知識の分量は初心者が想像するよりずっと多いと思う。
分かりやすいドキュメントがあったとしても (そして無いこともしばしばある!) 分量は減らないので
分量というハードルをクリアするのは単純に学習量しかないし、
学習量をこなすには時間をかけるしかしょうがない。
やりたいことを自由に出来るようになるまで何も生産しない時間 (業務なら人件費に換算されるだろう) をかける余裕があるの?
というところを不安に思っちゃうわけだよ。
ここは C スレだから C プログラミングを支援したい気持ちはあるがそれがしんどい場合も多いってことも知ってる。
個人事業なら趣味と兼ねるのもアリかもしんないけど。
マイクロソフトが出している公式のチュートリアルは C++ が基礎だけど
考え方としては C でも同じなのでそのへんは適当に読み替えながら……
https://learn.microsoft.com/ja-jp/windows/win32/
Win32 API は C で使ってもそんなに不便ではないように出来てる。
特に最も基礎のこのへんの例示のコードは (C++ とは書いてあるが) たぶん C としてコンパイルさせても通る。
https://learn.microsoft.com/ja-jp/windows/win32/learnwin32/your-first-windows-program
必要な知識の分量は初心者が想像するよりずっと多いと思う。
分かりやすいドキュメントがあったとしても (そして無いこともしばしばある!) 分量は減らないので
分量というハードルをクリアするのは単純に学習量しかないし、
学習量をこなすには時間をかけるしかしょうがない。
やりたいことを自由に出来るようになるまで何も生産しない時間 (業務なら人件費に換算されるだろう) をかける余裕があるの?
というところを不安に思っちゃうわけだよ。
ここは C スレだから C プログラミングを支援したい気持ちはあるがそれがしんどい場合も多いってことも知ってる。
個人事業なら趣味と兼ねるのもアリかもしんないけど。
225デフォルトの名無しさん (ワッチョイ 6646-wNAC)
2023/12/08(金) 10:13:43.24ID:20YRNN5F0 >>224
Cコンパイラに、C++ -> C トランスレート機能あるの?
Cコンパイラに、C++ -> C トランスレート機能あるの?
226デフォルトの名無しさん (ワッチョイ 66ab-XaJC)
2023/12/08(金) 10:26:10.76ID:vLixVDpZ0 API はほとんど C インターフェースで
C++をベターCとして利用してて C++のクラスの機構はほぼ使ってない
(GDI+ とかAPIがはなっから C++ インターフェースの奴は別)
C++をベターCとして利用してて C++のクラスの機構はほぼ使ってない
(GDI+ とかAPIがはなっから C++ インターフェースの奴は別)
227デフォルトの名無しさん (ワッチョイ 9140-JrwL)
2023/12/08(金) 10:34:54.49ID:faKtyhh20 >>218
ねえよ
ねえよ
228デフォルトの名無しさん (アウアウウー Sa21-wVFe)
2023/12/08(金) 10:50:23.47ID:k3Bpg+TDa ぶっちゃけGDI+もCから使えるけどね
229デフォルトの名無しさん (ワッチョイ 66ab-XaJC)
2023/12/08(金) 10:53:01.67ID:vLixVDpZ0 >>228
あれ Cインターフェース居るのか 最終的にはCOMになってるんやっけ?
あれ Cインターフェース居るのか 最終的にはCOMになってるんやっけ?
230デフォルトの名無しさん (ワッチョイ b501-8qzv)
2023/12/08(金) 11:03:20.25ID:Mdse7dEX0 >>220-221
なんかそういうのあったかも
なんかそういうのあったかも
231デフォルトの名無しさん (ワッチョイ 1163-8qzv)
2023/12/08(金) 11:04:41.36ID:VEgZ7oNC0 あれはPascalの呼出ではなかったかな
232はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a3e-By03)
2023/12/08(金) 11:27:29.89ID:B2zBKDAb0233デフォルトの名無しさん (ワッチョイ 6548-WD8q)
2023/12/08(金) 12:03:08.97ID:7hcazM9a0 >>224
兼任ですが個人事業主でお金と時間はそれなりに自由に使えます。
3〜5ヶ月くらいはまとまった時間を取ることも可能です。
公式チュートリアルは参考にはなりますが読みやすいかと言われると微妙ですね。
知識はもちろん身につけたいのですが、そこまでの道筋は他人のコードを読む方がやはり良いのでしょうか?
書籍やサイトなどでアプリの形になるまでのチュートリアルなどは無いのでしょうか。
兼任ですが個人事業主でお金と時間はそれなりに自由に使えます。
3〜5ヶ月くらいはまとまった時間を取ることも可能です。
公式チュートリアルは参考にはなりますが読みやすいかと言われると微妙ですね。
知識はもちろん身につけたいのですが、そこまでの道筋は他人のコードを読む方がやはり良いのでしょうか?
書籍やサイトなどでアプリの形になるまでのチュートリアルなどは無いのでしょうか。
234デフォルトの名無しさん (アウアウウー Sa21-wVFe)
2023/12/08(金) 12:17:34.25ID:k3Bpg+TDa Win32APIというよりそれ以前の
C言語の知識が足りてないんじゃないのかな
C言語の知識が足りてないんじゃないのかな
235はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a3e-By03)
2023/12/08(金) 13:05:38.60ID:B2zBKDAb0 >>233
何を学べば良いかすらわからないときのとっかかりとして
他人のコードを読む (何がわかってないかはわかる) ことを勧めたまでで、
良い資料があるならそれを読むにこしたことはないよ。
良い資料がないことも多いという現実はあるけど。
私は公式チュートリアルは良いほうだと思う。
知らないことを書いてあるんだからある程度は読みづらいこともあるのは当たり前のことで、
どれを読んだって似たようなもんじゃないかな。
専門的な内容をスラスラ読めるほうがおかしいでしょ。
何を学べば良いかすらわからないときのとっかかりとして
他人のコードを読む (何がわかってないかはわかる) ことを勧めたまでで、
良い資料があるならそれを読むにこしたことはないよ。
良い資料がないことも多いという現実はあるけど。
私は公式チュートリアルは良いほうだと思う。
知らないことを書いてあるんだからある程度は読みづらいこともあるのは当たり前のことで、
どれを読んだって似たようなもんじゃないかな。
専門的な内容をスラスラ読めるほうがおかしいでしょ。
236デフォルトの名無しさん (ワッチョイ 8a80-yDrh)
2023/12/08(金) 13:11:55.82ID:0BufPgxy0 さてはオメー
ふらっとC#スレで他人のコードの読み方とか延々聞いてたヤツだな?
ふらっとC#スレで他人のコードの読み方とか延々聞いてたヤツだな?
237デフォルトの名無しさん (アウアウウー Sa21-/D3x)
2023/12/08(金) 13:15:41.58ID:o54AonyOa >>206
関数もメモリにロードされるのわからず?
関数はただのマシンコードなんだからここから始まりますよ、というラベルがついてるだけだぞ
そして呼ばれた時はそこへジャンプするだけ
関数ポインタはそのマシンコードのラベルのアドレスを保持しているだけ
ポインタ以前にコンピュータの仕組みからやった方が良さそう
プログラム格納方式とか聞いたことない?
関数もメモリにロードされるのわからず?
関数はただのマシンコードなんだからここから始まりますよ、というラベルがついてるだけだぞ
そして呼ばれた時はそこへジャンプするだけ
関数ポインタはそのマシンコードのラベルのアドレスを保持しているだけ
ポインタ以前にコンピュータの仕組みからやった方が良さそう
プログラム格納方式とか聞いたことない?
238デフォルトの名無しさん (アウアウウー Sa21-wVFe)
2023/12/08(金) 13:31:18.44ID:k3Bpg+TDa >>236
なんちゃらGPTがここでこっそり質問してたら笑う
なんちゃらGPTがここでこっそり質問してたら笑う
239デフォルトの名無しさん (ワッチョイ 66cf-tBUZ)
2023/12/08(金) 13:36:30.72ID:SLmq2FCH0240デフォルトの名無しさん (ワッチョイ 9140-JrwL)
2023/12/08(金) 15:42:45.24ID:faKtyhh20 だからねえよ
そいつが勘違いしてるか、使い方が悪いかだろ
そいつが勘違いしてるか、使い方が悪いかだろ
241デフォルトの名無しさん (ワッチョイ 5df0-/D3x)
2023/12/08(金) 16:03:05.13ID:abnVL6FT0 >>206
構造体もプログラムからしたらただのメモリ領域の塊だぞ
そこに変数とかいう概念はない
構造体のメンバのオフセットでその位置を指定して書き込んだり読み込んだりするだけ
その時のオフセットの計算に利用されるのが型
変数宣言すると構造体全体サイズのメモリ領域がスタックに確保される
mallocで確保されるとヒープに確保されてそのアドレスが返る
ただそれだけ
構造体もプログラムからしたらただのメモリ領域の塊だぞ
そこに変数とかいう概念はない
構造体のメンバのオフセットでその位置を指定して書き込んだり読み込んだりするだけ
その時のオフセットの計算に利用されるのが型
変数宣言すると構造体全体サイズのメモリ領域がスタックに確保される
mallocで確保されるとヒープに確保されてそのアドレスが返る
ただそれだけ
242デフォルトの名無しさん (アウアウウー Sa21-wVFe)
2023/12/08(金) 16:08:12.70ID:k3Bpg+TDa 関数を malloc で確保するにはどうすれば良いですか?って言いそう
243デフォルトの名無しさん (ワッチョイ 5df0-/D3x)
2023/12/08(金) 16:21:49.56ID:abnVL6FT0 ちなみにメモリにロードされた関数の領域は現代のOSならば当然ながらアクセス不可能
昔はプログラム領域にアクセスできてその中のコードを動的に書き換えるという荒技をやってた人もいるらしいが
昔はプログラム領域にアクセスできてその中のコードを動的に書き換えるという荒技をやってた人もいるらしいが
244デフォルトの名無しさん (ワッチョイ 5df0-/D3x)
2023/12/08(金) 16:24:27.68ID:abnVL6FT0 ちなみにメモリ領域にマシンコードを生成してそのメモリ領域のマシンコードを即時実行するということはできる
これをJITという
最近のスクリプト言語ではこの手法がかなり用いられている
やり方は普通にメモリにマシンコードを生成して実行可能属性を付加、各種CPUキャッシュをクリアしてから
関数ポインタにキャストして実行するだけ
これをJITという
最近のスクリプト言語ではこの手法がかなり用いられている
やり方は普通にメモリにマシンコードを生成して実行可能属性を付加、各種CPUキャッシュをクリアしてから
関数ポインタにキャストして実行するだけ
245デフォルトの名無しさん (ワッチョイ 1163-8qzv)
2023/12/08(金) 16:31:30.89ID:VEgZ7oNC0 メモリ保護機構が動いて実行できないと思う
16ビットリアルモードOSだったらできたと思うが
16ビットリアルモードOSだったらできたと思うが
246デフォルトの名無しさん (スッップ Sd0a-GtvU)
2023/12/08(金) 16:51:01.76ID:9cA1ls6dd mprotectとかVirtualProtectで実行可能にすればできる
247デフォルトの名無しさん (ワッチョイ 1163-8qzv)
2023/12/08(金) 17:06:26.65ID:VEgZ7oNC0 しかし、それだと任意のコード実行が自由自在ってことになって・・・
まずくない?
まずくない?
248はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a3e-By03)
2023/12/08(金) 17:24:04.59ID:B2zBKDAb0249はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a3e-By03)
2023/12/08(金) 17:24:33.32ID:B2zBKDAb0250デフォルトの名無しさん (ワッチョイ 1163-8qzv)
2023/12/08(金) 17:35:36.56ID:VEgZ7oNC0 セキュリティって、身内も信じちゃまずいと思うよ
251デフォルトの名無しさん (ワッチョイ eaad-snvD)
2023/12/08(金) 20:25:30.65ID:Bb4hYLfH0252デフォルトの名無しさん (ワッチョイ 1163-8qzv)
2023/12/08(金) 20:31:27.89ID:VEgZ7oNC0 企業でもそうなんですか?
管理者が望んでいないプログラムが動かせたら困るでしょう
管理者自身がやるってならちょっと違いますが
管理者が望んでいないプログラムが動かせたら困るでしょう
管理者自身がやるってならちょっと違いますが
253デフォルトの名無しさん (ワッチョイ eaad-snvD)
2023/12/08(金) 20:41:26.51ID:Bb4hYLfH0254はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a3e-By03)
2023/12/08(金) 20:48:50.56ID:B2zBKDAb0 ???
私の理解だと >>247 は「機械語をその場で生成して即時実行するのって危なくないの?」という話だと思ってたんだけど違うの?
そういう理解だったから実行の許可を出す (メモリの実行可能属性を ON にする API を呼び出す) ことなく実行できない、
プログラマの意図しない実行は防がれるということを応えたつもりだったんだけど、運用の話なの???
「身内」ってのは「プログラムの中での機械語生成にミスったらめっちゃ暴走するやん?」という意味かと思ったけど
運用にかかわる人物という意味?
私の理解だと >>247 は「機械語をその場で生成して即時実行するのって危なくないの?」という話だと思ってたんだけど違うの?
そういう理解だったから実行の許可を出す (メモリの実行可能属性を ON にする API を呼び出す) ことなく実行できない、
プログラマの意図しない実行は防がれるということを応えたつもりだったんだけど、運用の話なの???
「身内」ってのは「プログラムの中での機械語生成にミスったらめっちゃ暴走するやん?」という意味かと思ったけど
運用にかかわる人物という意味?
255デフォルトの名無しさん (ワッチョイ ea79-4utE)
2023/12/08(金) 21:24:15.38ID:8rS6bPls0 >>225
C++黎明期はC++トランスレーター付きのCを普通に使わされたもんだよ
C++黎明期はC++トランスレーター付きのCを普通に使わされたもんだよ
256デフォルトの名無しさん (スップ Sdbf-MP5X)
2023/12/09(土) 07:42:54.58ID:Z2D8kHNzd >>250
それなら自作のプログラムをコンパイルして実行できる環境がすでにまずいだろw
パソコンをゲーム機みたいにしたいのかい
読み書きできるメモリを実行可能属性にできるというだけで
書き込み不可能なシステムメモリに書き込めるようにできるわけではない
それなら自作のプログラムをコンパイルして実行できる環境がすでにまずいだろw
パソコンをゲーム機みたいにしたいのかい
読み書きできるメモリを実行可能属性にできるというだけで
書き込み不可能なシステムメモリに書き込めるようにできるわけではない
257デフォルトの名無しさん (ワッチョイ ff46-vhj2)
2023/12/09(土) 08:06:29.62ID:NnZXyC0n0 本日のWebは、
・帝乃三姉妹は案外、チョロい。 → 本誌で既読
・レッドブルー → 本誌で既読
・からかい上手の高木さん → ゲッサンで既読
どうにかしてよ、A立。たとえば響5巻無料Webでもとか。
そういえば、高木さんの人の将棋のやつ、マガポケでも終わったね。
・帝乃三姉妹は案外、チョロい。 → 本誌で既読
・レッドブルー → 本誌で既読
・からかい上手の高木さん → ゲッサンで既読
どうにかしてよ、A立。たとえば響5巻無料Webでもとか。
そういえば、高木さんの人の将棋のやつ、マガポケでも終わったね。
258デフォルトの名無しさん (ワッチョイ 97cf-TEND)
2023/12/09(土) 08:12:11.03ID:zYR2UmFI0 いわゆるroot権限が必要な行為は実行出来ないね
でも、mprotectの説明によると
> 注意
Linux では、(カーネル vsyscall 領域以外の) 任意のプロセスアドレス空間において mprotect ()を呼び出すことが、常に許されている。
となってるから、Node.js(node)とかJITを行うプログラムがユーザー権限で動くのだろう
単に利便性の為だろう
でも、mprotectの説明によると
> 注意
Linux では、(カーネル vsyscall 領域以外の) 任意のプロセスアドレス空間において mprotect ()を呼び出すことが、常に許されている。
となってるから、Node.js(node)とかJITを行うプログラムがユーザー権限で動くのだろう
単に利便性の為だろう
259デフォルトの名無しさん (ワッチョイ 9f07-h0RM)
2023/12/12(火) 20:44:31.35ID:3wiw5swR0 staticグローバル変数を含んだ動的ライブラリーを動的リンクをする場合はグローバル変数が初期化されるのはmain実行前の認識です。
同じプロセス内で再度初期化したい場合は別途初期化の関数を用意してないと不可能でしょうか?
動的ロード(dlopen)を使用した場合はdlcloseして再度dlopenした場合は初期化されますか?
同じプロセス内で再度初期化したい場合は別途初期化の関数を用意してないと不可能でしょうか?
動的ロード(dlopen)を使用した場合はdlcloseして再度dlopenした場合は初期化されますか?
260デフォルトの名無しさん (ワッチョイ d701-Qbcu)
2023/12/12(火) 21:01:30.67ID:bMo3JLCK0 >>259
やってみれば?
やってみれば?
261デフォルトの名無しさん (ワッチョイ 17f1-tASO)
2023/12/12(火) 21:15:07.81ID:6C/zc+S/0 明示的に初期化処理を書くのが吉
262デフォルトの名無しさん (ワッチョイ d701-Qbcu)
2023/12/12(火) 21:58:30.38ID:bMo3JLCK0 >>259
>動的ロード(dlopen)を使用した場合はdlcloseして再度dlopenした場合は初期化されますか?
Linuxの場合には初期化されたけど環境依存かも?
$ cat hoge.c hage.c
#include <stdio.h>
static int a = 100;
void increament_a () {++ a;}
void print_a () {printf ("%d\n", a);}
#include <dlfcn.h>
typedef void (*Func) ();
int main () {
void *handle;
Func func;
handle = dlopen ("libhoge.so", RTLD_LAZY);
func = (Func)dlsym (handle, "print_a");
(*func) ();
func = (Func)dlsym (handle, "increament_a");
(*func) ();
func = (Func)dlsym (handle, "print_a");
(*func) ();
dlclose (handle);
handle = dlopen ("libhoge.so", RTLD_LAZY);
func = (Func)dlsym (handle, "print_a");
(*func) ();
return 0;
}
$ gcc -shared -fPIC -o libhoge.so hoge.c
$ gcc -o hage hage.c
$ LD_LIBRARY_PATH=.; ./hage
100
101
100
>動的ロード(dlopen)を使用した場合はdlcloseして再度dlopenした場合は初期化されますか?
Linuxの場合には初期化されたけど環境依存かも?
$ cat hoge.c hage.c
#include <stdio.h>
static int a = 100;
void increament_a () {++ a;}
void print_a () {printf ("%d\n", a);}
#include <dlfcn.h>
typedef void (*Func) ();
int main () {
void *handle;
Func func;
handle = dlopen ("libhoge.so", RTLD_LAZY);
func = (Func)dlsym (handle, "print_a");
(*func) ();
func = (Func)dlsym (handle, "increament_a");
(*func) ();
func = (Func)dlsym (handle, "print_a");
(*func) ();
dlclose (handle);
handle = dlopen ("libhoge.so", RTLD_LAZY);
func = (Func)dlsym (handle, "print_a");
(*func) ();
return 0;
}
$ gcc -shared -fPIC -o libhoge.so hoge.c
$ gcc -o hage hage.c
$ LD_LIBRARY_PATH=.; ./hage
100
101
100
263デフォルトの名無しさん (ワッチョイ 9f07-h0RM)
2023/12/12(火) 22:04:40.47ID:3wiw5swR0264デフォルトの名無しさん (ワッチョイ 17f1-tASO)
2023/12/12(火) 22:10:06.55ID:6C/zc+S/0 初期値代入くらい書くだろ普通
処理系によっちゃ不定な値から始まったりするのを防ぐ為にさ
処理系によっちゃ不定な値から始まったりするのを防ぐ為にさ
265デフォルトの名無しさん (ワッチョイ 9f07-h0RM)
2023/12/12(火) 22:18:02.98ID:3wiw5swR0266はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5705-ZkkM)
2023/12/12(火) 22:18:21.71ID:Kje9ktjN0267はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5705-ZkkM)
2023/12/12(火) 22:39:58.31ID:Kje9ktjN0 >>264
言語仕様的にはグローバル変数 (記憶域期間が static) が不定になったりはしないことになっている (初期化子がなければゼロで初期化する) のでまともな開発環境があるところではそんな心配はしないよ。
心配が必要になるほど不確かな処理系しかない (または初期化処理も自分でかかなきゃいけないような低レイヤ) 分野もあるのは知ってるけどそれが普通ってことはない。
言語仕様的にはグローバル変数 (記憶域期間が static) が不定になったりはしないことになっている (初期化子がなければゼロで初期化する) のでまともな開発環境があるところではそんな心配はしないよ。
心配が必要になるほど不確かな処理系しかない (または初期化処理も自分でかかなきゃいけないような低レイヤ) 分野もあるのは知ってるけどそれが普通ってことはない。
268デフォルトの名無しさん (ワッチョイ 9f79-1KRD)
2023/12/12(火) 23:05:45.63ID:I4UWTUvH0 >>267
言語仕様ではなく2度目のdlopenの初期化の話なんだからドキュメント化されてないなら何の保証もないでしょ
言語仕様ではなく2度目のdlopenの初期化の話なんだからドキュメント化されてないなら何の保証もないでしょ
269はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9f3e-ZkkM)
2023/12/12(火) 23:55:24.16ID:skpldDGw0 >>268
そういう意味で言ってたのならわかる。
「どうして元から代入する処理を入れてなかった?それが普通だろ?」というニュアンスで受け取ってたから元は dlopen しなおしで対処する想定ではなかったからそういうことを心配してなかった (する必要がなかった) という反応になった。
そういう意味で言ってたのならわかる。
「どうして元から代入する処理を入れてなかった?それが普通だろ?」というニュアンスで受け取ってたから元は dlopen しなおしで対処する想定ではなかったからそういうことを心配してなかった (する必要がなかった) という反応になった。
270デフォルトの名無しさん (ワッチョイ 37f2-YdMO)
2023/12/15(金) 08:29:58.25ID:a4YsmFKj0 板の名前変わった?
271デフォルトの名無しさん (ワッチョイ 6bbb-/1Gs)
2023/12/17(日) 18:23:47.21ID:kc2HrTf20 ポインタ変数にアドレスを代入するのはシャローコピーと言えると思いますか?
char s[] = "abc";
char *p = s; // shallow copy
char s[] = "abc";
char *p = s; // shallow copy
272デフォルトの名無しさん (ワッチョイ 4b63-3PPy)
2023/12/17(日) 18:40:34.16ID:i7ihHaq10 果たしてコピーと呼んで良い操作ナノか
273デフォルトの名無しさん (ワッチョイ 1e5f-DkQ9)
2023/12/17(日) 19:27:43.64ID:mH/O4qym0 >>271
言えません
言えません
274デフォルトの名無しさん (ワッチョイ e34d-e8vO)
2023/12/17(日) 19:32:39.54ID:MfQY7qyQ0 >>273
?
?
275デフォルトの名無しさん (ワッチョイ cb62-dXDU)
2023/12/17(日) 22:10:52.33ID:UmzU+/ux0 シャローコピーはディープコピーと並べて語るときに区別するための用語であって、
代入は普通に代入と呼ぶのが、コミュニケーションにおいて適切だ、
と、自分が聞かれた場合なら答えるし、レビュー依頼された場合なら指摘します
代入は普通に代入と呼ぶのが、コミュニケーションにおいて適切だ、
と、自分が聞かれた場合なら答えるし、レビュー依頼された場合なら指摘します
276デフォルトの名無しさん (ワッチョイ e34d-e8vO)
2023/12/18(月) 00:59:34.37ID:Mvyif4Hn0 >>275
シャローコピーと言えると思いますか?
シャローコピーと言えると思いますか?
277デフォルトの名無しさん (ワッチョイ e34d-e8vO)
2023/12/18(月) 00:59:46.13ID:Mvyif4Hn0 指摘する前に答えろよ無能
278デフォルトの名無しさん (ワッチョイ 63c9-/1Gs)
2023/12/18(月) 02:31:45.63ID:BtLCMjh/0 シャローコピーでしょ
2つのポインタが同じ内容になってる訳だから
ちなみに、変数定義時の代入文はバインド(束縛する)と言った方が適切だな
2つのポインタが同じ内容になってる訳だから
ちなみに、変数定義時の代入文はバインド(束縛する)と言った方が適切だな
279デフォルトの名無しさん (ワッチョイ dee7-DkQ9)
2023/12/18(月) 09:17:00.35ID:qIC94rZG0 >>276
言えません
言えません
280デフォルトの名無しさん (ワッチョイ 16ab-zIzn)
2023/12/18(月) 09:38:52.52ID:RUscEa1Z0 シャローコピーの要件からすると
ポインタ変数にアドレスを代入するだけでは成立せずに
リファレンス可能なオブジェクトを指してるポインタでないとまずい気がする
char *p = (char *)0x000; /* アドレスを代入してるぞ */
ポインタ変数にアドレスを代入するだけでは成立せずに
リファレンス可能なオブジェクトを指してるポインタでないとまずい気がする
char *p = (char *)0x000; /* アドレスを代入してるぞ */
281デフォルトの名無しさん (ワッチョイ 6bbb-/1Gs)
2023/12/18(月) 10:45:42.59ID:RHsCrDES0 意見分かれますね
ではstrdupはディープコピーだと言えますか?
ではstrdupはディープコピーだと言えますか?
282デフォルトの名無しさん (ワッチョイ 4b63-3PPy)
2023/12/18(月) 10:52:49.41ID:kauj19Ts0 C言語にはオブジェクトと言う概念がないからなあ
お気持ちとしてどうかと聞かれれば、人それぞれで
お気持ちとしてどうかと聞かれれば、人それぞれで
283デフォルトの名無しさん (ワッチョイ efc0-UNLj)
2023/12/18(月) 10:54:27.09ID:PYgWDYAB0 いやそれぬるぽ
284デフォルトの名無しさん (ワッチョイ d663-/1Gs)
2023/12/18(月) 12:07:36.53ID:ccgmPeZz0285はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d23e-/274)
2023/12/18(月) 12:57:51.87ID:vbeDxg2G0 それは C の概念モデルを前提にしていいだろ。
286デフォルトの名無しさん (ワッチョイ 16ab-zIzn)
2023/12/18(月) 14:16:20.90ID:RUscEa1Z0 C++ の 参照だったら概念含めてそのまんまだったんだろうな
int a;
int& b = a;
int a;
int& b = a;
287デフォルトの名無しさん (ワッチョイ 12ad-9NgZ)
2023/12/18(月) 14:52:23.89ID:kcYk1zSZ0 >>271
言えると思う。
言えると思う。
288デフォルトの名無しさん (スフッ Sd32-3CSV)
2023/12/18(月) 16:19:13.36ID:xiaHc48Fd 内容が値を表すメモリの位置 = オブジェクト
289デフォルトの名無しさん (ワッチョイ cb62-dXDU)
2023/12/18(月) 17:05:11.17ID:pYYMlhZJ0290デフォルトの名無しさん (ワッチョイ 4b63-3PPy)
2023/12/18(月) 17:09:52.77ID:kauj19Ts0 代入元の配列がスタック上なのかどうか、そちらの方がC言語的には重要
291デフォルトの名無しさん (ワッチョイ 16ab-zIzn)
2023/12/18(月) 17:12:05.22ID:RUscEa1Z0 関数内の自動変数へのポインタを関数の外へ持ち出したりすると…
292デフォルトの名無しさん (ワッチョイ 5f01-3PPy)
2023/12/18(月) 18:48:36.94ID:epkANb1d0 何かのポインタをメンバに持つ構造体の実体の複写
293デフォルトの名無しさん (ワッチョイ d663-/1Gs)
2023/12/18(月) 23:27:08.16ID:ccgmPeZz0294デフォルトの名無しさん (ワッチョイ 16cf-fH6R)
2023/12/18(月) 23:33:27.08ID:a4PUOo8N0 コピーには違いないけどディープとかシャローとか区別できるものじゃないってことだろ
295デフォルトの名無しさん (ワッチョイ 1279-F8eA)
2023/12/18(月) 23:40:20.33ID:6hD73gHu0296デフォルトの名無しさん (ワッチョイ 4b46-AQ+F)
2023/12/19(火) 08:23:42.15ID:ijJJQ5/r0297デフォルトの名無しさん (スププ Sd32-3CSV)
2023/12/19(火) 09:34:26.09ID:+6PK9xZxd シャローコピーとかディープコピーとかはもともとPythonの概念ですよね?
298デフォルトの名無しさん (ワッチョイ 2701-NGr8)
2023/12/19(火) 09:54:57.24ID:hCROhcq70 は?
299デフォルトの名無しさん (ワッチョイ 2701-3PPy)
2023/12/19(火) 10:05:08.86ID:cwbunCZy0 >>289
馬鹿ってすぐ断定するよな
馬鹿ってすぐ断定するよな
300デフォルトの名無しさん (ワッチョイ 77cd-UNLj)
2023/12/19(火) 10:07:03.49ID:KoTx3gw20 コピーとクローンは違うよな?
301デフォルトの名無しさん (ラクッペペ MMde-Y9Ov)
2023/12/19(火) 10:13:44.25ID:MIravlrKM >>297
C++やJavaあたりが元だと思うけど
C++やJavaあたりが元だと思うけど
302デフォルトの名無しさん (ワッチョイ 4b63-3PPy)
2023/12/19(火) 10:17:05.18ID:gboy58yC0 そういうことで、
Cにはシャローコピーとかディープコピーとかの概念はない
Cにはシャローコピーとかディープコピーとかの概念はない
303デフォルトの名無しさん (ワッチョイ cb62-dXDU)
2023/12/19(火) 10:51:12.24ID:E9BI8x9B0 少し前までスマートな人がたくさんいたのにいつの間にかバカしか居なくなった
304デフォルトの名無しさん (ワッチョイ cb62-dXDU)
2023/12/19(火) 10:55:10.13ID:E9BI8x9B0 >>297
違います
違います
305デフォルトの名無しさん (ワッチョイ 5ee1-hm9h)
2023/12/19(火) 11:32:45.68ID:df21V+Ma0 >>301
LISPじゃね?深いコピーは演習なんかの定番だった気がする
LISPじゃね?深いコピーは演習なんかの定番だった気がする
306デフォルトの名無しさん (スップ Sd52-54/p)
2023/12/19(火) 13:45:42.10ID:3Nu9QseCd307デフォルトの名無しさん (スププ Sd32-Hm2B)
2023/12/19(火) 15:01:13.02ID:+6PK9xZxd Pythonの解説書には大概、ディープコピーとシャローコピーが載ってますよ
308はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d23e-/274)
2023/12/19(火) 15:28:24.33ID:J0ExAcTK0 >>305
もちろんそういう状況を扱っている事例は数多くある。
ただ、ざっと見た感じでは古いマニュアルでは「再帰的」とか「共有」とかいった語で説明するのが普通っぽい。
深い/浅いといった言い方が発生したのはもっと新しい言語でのことだと思う。
もちろんそういう状況を扱っている事例は数多くある。
ただ、ざっと見た感じでは古いマニュアルでは「再帰的」とか「共有」とかいった語で説明するのが普通っぽい。
深い/浅いといった言い方が発生したのはもっと新しい言語でのことだと思う。
309デフォルトの名無しさん (ワッチョイ 2701-3PPy)
2023/12/19(火) 19:44:57.82ID:cwbunCZy0 複オジが粘着してそう
310デフォルトの名無しさん (ワッチョイ 77cd-UNLj)
2023/12/19(火) 19:48:51.51ID:KoTx3gw20 つか、Cは書いてる人にしか型が分からないからそんな器用な事は出来ないよな?
どっちのコピーも自前でちまちま作るしか無い
どっちのコピーも自前でちまちま作るしか無い
311デフォルトの名無しさん (ワッチョイ 92de-IA1d)
2023/12/19(火) 19:53:51.13ID:nmJwtfK30 呼称にこだわってる限りCなんて使えない
お上品な他の言語使ってりゃいいじゃん
お上品な他の言語使ってりゃいいじゃん
312デフォルトの名無しさん (ワッチョイ cbd5-dXDU)
2023/12/20(水) 05:56:32.08ID:r5p/Itr10 >>310
その通りですよ
私はユーザが定義する集成型(structみたいなもの)を、PCをまたいでリモートコンピュータ上にコピーするもの(WindowsのC#とHP-UXのC)、を仕事で作った事があるのだけど、それをやるには型定義からガッツリ関わる仕組みを構築しないと無理なのよ。
自分はエクセルでやった(そして完璧にはできず特例処理だらけになった)けど、普通はDDLとか独自に作るでしょ
上の方で最初に話題出したヒトは多分、どういう問題空間でディープコピーとかシャローコピーを話題にする必要が生じるのか【すら】分かってないよ
そうだね 複オジ とか言われてた人の雰囲気と似てるね
その通りですよ
私はユーザが定義する集成型(structみたいなもの)を、PCをまたいでリモートコンピュータ上にコピーするもの(WindowsのC#とHP-UXのC)、を仕事で作った事があるのだけど、それをやるには型定義からガッツリ関わる仕組みを構築しないと無理なのよ。
自分はエクセルでやった(そして完璧にはできず特例処理だらけになった)けど、普通はDDLとか独自に作るでしょ
上の方で最初に話題出したヒトは多分、どういう問題空間でディープコピーとかシャローコピーを話題にする必要が生じるのか【すら】分かってないよ
そうだね 複オジ とか言われてた人の雰囲気と似てるね
313デフォルトの名無しさん (ワッチョイ b74b-gvj7)
2023/12/20(水) 09:35:46.96ID:/uXb+00h0 UPLIFT プレミアム・サービスのお知らせ
https://uplift.5ch.net/
UPLIFT 主な特典
・連続投稿の規制を緩和します。
・スレッド作成時の規制を緩和します。
・5ch.netのスレッド表示画面に表示される広告を除去します。
・5ch.net専用ブラウザで5ch.netの過去ログを閲覧できるようになります。
・海外からのアクセス・ホスト経由からでも書き込みができるようになります。
・書き込みが規制されているプロバイダーからでも書き込みができるようになります。
・5ch.netを安定して利用できるように運営を支援できます。
5ちゃんねるを存続させるためには、皆様のご協力が必要です。
最後まで御精読いただきありがとうございました。
https://uplift.5ch.net/
UPLIFT 主な特典
・連続投稿の規制を緩和します。
・スレッド作成時の規制を緩和します。
・5ch.netのスレッド表示画面に表示される広告を除去します。
・5ch.net専用ブラウザで5ch.netの過去ログを閲覧できるようになります。
・海外からのアクセス・ホスト経由からでも書き込みができるようになります。
・書き込みが規制されているプロバイダーからでも書き込みができるようになります。
・5ch.netを安定して利用できるように運営を支援できます。
5ちゃんねるを存続させるためには、皆様のご協力が必要です。
最後まで御精読いただきありがとうございました。
314デフォルトの名無しさん (ワッチョイ e3f0-HAvR)
2023/12/23(土) 02:06:44.23ID:cGlPuzRM0315デフォルトの名無しさん (ワッチョイ 53d2-TKg5)
2023/12/23(土) 10:35:35.90ID:1vO40jtV0 smalltalk、凄いな!私はバートランド・メイヤーさん、すごく尊敬してます
javadocとかdoxygenみたいなシステムも、もうあの時代に彼はすでに形にして世に出してるんですよね
例外の説明とか、プログラムを契約の履行に例える話とかもそうだし、あとコメント論とかもイケてるんですよ
頭良すぎて周りが付いてくのに何年もかかってる気がする
javadocとかdoxygenみたいなシステムも、もうあの時代に彼はすでに形にして世に出してるんですよね
例外の説明とか、プログラムを契約の履行に例える話とかもそうだし、あとコメント論とかもイケてるんですよ
頭良すぎて周りが付いてくのに何年もかかってる気がする
316デフォルトの名無しさん (ワッチョイ 53d2-TKg5)
2023/12/23(土) 10:43:58.55ID:1vO40jtV0 てかまあ、Cのスレだね
でもCで構造体リモートコピーするにはさ、みたいな話をしても、多分誰も乗ってきてくれないよね
でもCで構造体リモートコピーするにはさ、みたいな話をしても、多分誰も乗ってきてくれないよね
317デフォルトの名無しさん (ワッチョイ 5363-y73S)
2023/12/23(土) 11:24:31.92ID:MLKmoxlx0 それは話の持ってき方。プレゼン上手ならできる
318デフォルトの名無しさん (ワッチョイ 6f97-xkue)
2023/12/23(土) 11:28:28.28ID:j8bI1ONF0 そーゆーのに憧れてる層には土方言語のCはいらんだろw
319デフォルトの名無しさん (ワッチョイ 43a4-BWWG)
2023/12/23(土) 11:41:06.10ID:PYuibGoS0 だからさ、C言語の変数や構造体内の型宣言なんてイイカゲンなんだからそう言う話ははなから無理なんだよ
320デフォルトの名無しさん (ワッチョイ 53d2-TKg5)
2023/12/23(土) 11:42:27.32ID:1vO40jtV0 メッセージというか伝送パケットを作る話とかはどうですかね(皆さん興味ありますか)
タグ・レングス・バリュー形式がー、とか
バイナリvs文字列とか
(文字列にして伝送するのって遅いと思うでしょ、意外と速度okだったりします)
あと、message pack とか
タグ・レングス・バリュー形式がー、とか
バイナリvs文字列とか
(文字列にして伝送するのって遅いと思うでしょ、意外と速度okだったりします)
あと、message pack とか
321デフォルトの名無しさん (ワッチョイ 43a4-BWWG)
2023/12/23(土) 11:44:11.18ID:PYuibGoS0 ゼロ(0x00)が送れないから文字列は無理
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」 [冬月記者★]
- 習政権、高市首相への態度硬化 台湾有事発言で連日非難 中国 ★11 [ぐれ★]
- 【外国人問題】小野田紀美担当相「不法就労や不法滞在は許さない」 [シャチ★]
- 【野球】井端監督 大谷翔平、山本由伸らのWBCへの参加 「1日も早く返事ほしい」「待っててといっても、国内組が遅くなってしまう」★3 [冬月記者★]
- 経団連会長、日中は建設的対話を 経済3団体が高市首相と初会談も日中関係は話題に登らず… [BFU★]
- 東京株式市場 インバウンド関連株が下落 中国政府の渡航自粛要請で [バイト歴50年★]
- 橋下徹「口だけ番長の日本が中国に喧嘩負け。なんとカッコ悪い日本か!」高市にバチーン!✴ [153490809]
- 【高市早苗】習近平激怒か [115996789]
- 中国「高市が頭を下げて謝罪しない限り、絶対に許さない」 [329329848]
- 🏡
- ワンピースの評価ガタ落ちしてるけど尾田っちのメンタルが心配
- ガンダム←名言ばかり エバー(笑)←こいつ(笑)
