[過去ログ] C言語なら俺に聞け 151 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
297: (ワッチョイ e501-SN11) 2019/04/30(火)17:01 ID:QYNECMA50(4/5)調 AAS
>>296
もしかしたら貴方と私は違う思想の元で仕事してるのかも。
JNIはAndroidぐらいでしか使ってない、てかそもそもJavaを使う機会が少ないような業界の人です。
なんちゃってtry〜catchのためのsetjmp系はそれでもやっぱりアセンブラを使わないC言語の範疇内な訳であって、やっぱりC言語否定の理由にはならんとです。
唯一、OSを記述する際のタスクプリエンプトだけはC言語だけで記述できず悪魔のスタック操作とコンテキスト切り替えが必要なのでアセンブラが必須だとは思いますが。
298: (ワッチョイ 2301-4ufv) 2019/04/30(火)17:54 ID:Cm5pFeJF0(2/2)調 AAS
>>296
別にsetjmp, longjmpなくてもプログラムは組めるし
Memory Mapped I/Oならデバイス制御もC言語だけで組めるだろ
299(5): (ワッチョイ 2d5f-zd//) 2019/04/30(火)18:21 ID:hc3e5D+80(1)調 AAS
プログラミング素人です。
scanf関数について質問なのですが、
char str[10];
for(i=0;i<5;i++){
scanf(“%c”,str[i]);
}
として、「abcd」と入力された場合、
str[0]=‘a’
str[1]=‘b’
str[2]=‘c’
str[3]=‘d’
str[4]=‘¥’
str[5]=‘0’
となるのでしょうか?
str配列の0~3番目にa~dが格納されていることはprintfでわかりましたが、4以降は何が格納されているのか自分で調べる方法がわかりません…
300: さまよえる蟻人間◆T6xkBnTXz7B0 (ワッチョイ b501-VySk) 2019/04/30(火)18:41 ID:lzNlO/OB0(1/2)調 AAS
>>299
C/C++では文字は整数なんだ。整数として出力して、アスキー表を参照すれば、文字がわかるはず。
301: ◆QZaw55cn4c (ワッチョイ 6347-HJzg) 2019/04/30(火)18:44 ID:iYYZTFZo0(6/6)調 AAS
>>299
鋭い質問ですね…手元でいろいろ試していますが、今ひとつ事情がつかめないでいます
https://ideone.com/l3ZslT
ideone と x64/gcc/cygwin でも結果が変わってしまいます…
302: さまよえる蟻人間◆T6xkBnTXz7B0 (ワッチョイ b501-VySk) 2019/04/30(火)18:51 ID:lzNlO/OB0(2/2)調 AAS
str[5]以降は決まってないから調べてもあまり意味がない。多分ゴミデータ。
303(1): (ワッチョイ e501-SN11) 2019/04/30(火)19:09 ID:QYNECMA50(5/5)調 AAS
>>299
str[4]='¥0'
それ以降はゴミ
304(1): (ワッチョイ 65b3-6xWl) 2019/04/30(火)19:30 ID:CZMZfk1L0(1)調 AAS
>>303
str[4]は'\n'じゃね?
305(1): (アウアウエー Sa13-9UpB) 2019/04/30(火)19:42 ID:ZdpyyptHa(1)調 AAS
まあ改行入れたら改行ですね
306: (ワッチョイ a373-MRXB) 2019/05/01(水)00:16 ID:pM2+GGDK0(1)調 AAS
自作関数内のエラー時にerrnoに値をセットするのってマナー違反ですか?
307: (アウアウエー Sa13-9UpB) 2019/05/01(水)00:27 ID:Lv+8X8zta(1)調 AAS
入れられるもんなら入れてみろ
308: (ワッチョイ 4b63-MRXB) 2019/05/01(水)01:10 ID:dGckAS/m0(1)調 AAS
信長 入れられないなら殺してしまえそのプロセス
秀吉 入れられるまで仕様変更を待とう
家康 俺が直してやる!
309: 306 (ワッチョイ a3c5-MRXB) 2019/05/01(水)02:42 ID:LlVhs4fx0(1)調 AAS
https://ideone.com/JeNdi9
こういうエラー処理を書きたいんですが
310(1): (アウアウウー Sae9-lbZQ) 2019/05/01(水)13:05 ID:Vm5gAWGsa(1)調 AAS
>>305
str[4]が改行コードの\nだとして
str[5]は\0にはならないの?
311: (アウアウエー Sa13-9UpB) 2019/05/01(水)14:38 ID:pGaFGHQ6a(1/2)調 AAS
>>310
それは明らかになりません。
null文字入れるのは大抵はこっちの役目です。
312: (JP 0H13-1PXK) 2019/05/01(水)14:41 ID:yF2N0E1tH(1)調 AAS
>>304
%c は空白文字は入らないのでは?
313: (アウアウエー Sa13-9UpB) 2019/05/01(水)15:19 ID:pGaFGHQ6a(2/2)調 AAS
%cは文字は全部入る。
受け付ける文字をはっきりさせたいなら[]使うのがよい。
314(1): (ワッチョイ 7fda-51S+) 2019/05/02(木)12:01 ID:oq2ExZVd0(1)調 AAS
printf()のペアっぽいからという理由で
scanf()を使わせる初心者本をこの世から駆逐すべき
315(3): (ワッチョイ 0663-Cg3z) 2019/05/02(木)12:52 ID:Yg4L14jR0(1)調 AAS
使い方を熟知している人が使う分には問題ないが
「良い子はマネをしてはいけません」の典型だな
316: (ワッチョイ 62a5-PJjo) 2019/05/02(木)13:24 ID:+EePt9KB0(1)調 AAS
初心者はただ値が入力できりゃ楽しいんじゃね
ついでにscanfはかんたんに間違いを引き起こすことが出来るから脆弱性の説明にも使える
このご時世、かんたんに間違いを体験させること自体が難しくなってる
セキュリティが高くなると間違えさせる行動へのコストもまた高くなる
317: (アウアウウー Sabb-vI8p) 2019/05/02(木)15:41 ID:jQNzLmJja(1)調 AAS
昔のマイコン的なものだと暴走したりしてなお良い。
core dump してるようじゃまだまだ安全過ぎる。
318: (ワッチョイ 6752-ahOC) 2019/05/02(木)19:38 ID:lQcGaGZC0(1)調 AAS
たしかにscanfが危険なものだと知った時にどうやってfgetsに置き換えるか考えたの思い出した
319(2): (ワッチョイ 422f-ahOC) 2019/05/02(木)21:18 ID:H376nx5x0(1/7)調 AAS
>>287
その数%のアセンブラの部分を、おまえさんは「OS」と呼ぶのか?
320: (ワッチョイ 422f-ahOC) 2019/05/02(木)21:20 ID:H376nx5x0(2/7)調 AAS
>>314
scanfの仕様をロクに調べもせず自分の頭で考えもせず
どっかの受け売りを初心者に吹聴する無能老害こそ
この世から駆逐すべきだろうが
321(1): (トンモー MM93-qoXq) 2019/05/02(木)21:21 ID:TaSBDpemM(1/4)調 AAS
>>319
ヨコからスマンけど
そゅ意味じゃないのが
理解できないほどの馬鹿は
ここにくるべきではない
322: (ワッチョイ 422f-ahOC) 2019/05/02(木)21:22 ID:H376nx5x0(3/7)調 AAS
>>315
「よい子は真似をしてはいけません」と言われる芸当をやっているプロになろうって人には当てはまらない
323: (ワッチョイ 422f-ahOC) 2019/05/02(木)21:24 ID:H376nx5x0(4/7)調 AAS
>>321
おまえさんこそ>>283からの話の流れを読んでるか?
人を馬鹿呼ばわりした自分の発言に責任を持てよ
324: (ワッチョイ 422f-ahOC) 2019/05/02(木)21:25 ID:H376nx5x0(5/7)調 AAS
匿名掲示板だから逃げたければ逃げられるが
おまえさんの人間性の問題が変わるわけではない
325: (トンモー MM93-qoXq) 2019/05/02(木)21:34 ID:TaSBDpemM(2/4)調 AAS
馬鹿丸だし(笑)
論文ゼロの院生くずれ馬鹿ニート
という雰囲気プンプンだな(爆)
326: (ワッチョイ f7dc-ahOC) 2019/05/02(木)21:53 ID:TlCaXbcx0(1)調 AAS
院生とかめっちゃ高評価じゃんw
俺には大学にコロコロコミックを持ってきて、全ての人間が敵に見えて毎日発狂してた同級生の江○君と被ってしまう。
頭はすこぶる良いんだけど、頭が弱い残念なアイツの雰囲気がプンプン
327: (ワッチョイ 422f-ahOC) 2019/05/02(木)21:55 ID:H376nx5x0(6/7)調 AAS
学歴コンプレックスまる出しだな
頭隠して尻隠さずw
328: (トンモー MM93-qoXq) 2019/05/02(木)22:04 ID:TaSBDpemM(3/4)調 AAS
院生の意味が理解できない馬鹿(笑)
329: (トンモー MM93-qoXq) 2019/05/02(木)22:05 ID:TaSBDpemM(4/4)調 AAS
学歴など無意味
馬鹿は馬鹿(笑)
330: (ワッチョイ e201-VrjD) 2019/05/02(木)22:06 ID:BLoepDOP0(1)調 AAS
>>319
何を言いたいのか意味不明w
331: (ワッチョイ 422f-ahOC) 2019/05/02(木)22:22 ID:H376nx5x0(7/7)調 AAS
効いてる効いてるw
突然論文ゼロとか言い出すカモは扱いやすすぎ
332: (アウアウクー MM9f-I0oC) 2019/05/03(金)00:28 ID:ykdjIw3IM(1)調 AAS
#include <stdio.h>
int main(void){
remove("2chスレ:tech
return 0;
}
333: (ワッチョイ 6752-ahOC) 2019/05/03(金)03:22 ID:l9gwftmb0(1)調 AAS
文字列を消しても実態が消えないのでは
334: (トンモー MM93-qoXq) 2019/05/03(金)07:52 ID:EnpL9vkxM(1)調 AAS
Cできるけどアセンブラできない、
ってのはCもできないってことだ。
335(3): (ワッチョイ 06d2-R0y6) 2019/05/03(金)09:31 ID:Adh7HeMA0(1)調 AAS
アセンブラからCに行ったらアセンブラでやってたアルゴリズムがCで表現できなく、非常にもどかしくて・・・
336: ◆QZaw55cn4c (ワッチョイ 8247-R0y6) 2019/05/03(金)10:16 ID:ZD3cPA9Q0(1/2)調 AAS
>>335
それは初耳、いや、どういうのに手こずったのか参考に教えていただけませんか?
337: (ワッチョイ cb02-R0y6) 2019/05/03(金)17:51 ID:VHrwonhY0(1)調 AAS
出来る出来ないっていう話なら、基本Cできるんじゃないかな。
CPU固有のブルック転送命令とかそんなのを除いて。
(それすら別にできるけどね。)
1命令でできてたことがめんどくさくなるってものならあるかも。
338: (ワッチョイ 0663-Cg3z) 2019/05/03(金)18:09 ID:Mu7G7jjV0(1)調 AAS
アセンブラで作るにしてもでもアルゴリズムで実装しているならCでも出来るんじゃないの?
339: (ワッチョイ 7fe9-3iRC) 2019/05/03(金)18:10 ID:3HjiUXGl0(1)調 AAS
プラットフォーム依存の問題は言語じゃなくてコンパイラより下が解決するわけでさ、それをできると言っていいならなんでもできると思うよ。
340(1): ◆QZaw55cn4c (ワッチョイ 8247-R0y6) 2019/05/03(金)18:51 ID:ZD3cPA9Q0(2/2)調 AAS
>>335
一つ思い出しました、キャリーフラグを活用するアルゴリズムは、そのままでは C でかけずに大変ですね
ローテートとかシフトとか
341: (ワッチョイ 4240-ahOC) 2019/05/03(金)19:20 ID:Qo5d3PXm0(1)調 AAS
>335
キャリーフラグが無くてオーバーフロー/アンダーフロー判定が面倒だとか、
ビットシフトはあってもローテーションが無いとか。
ジャンプ命令使うとパイプラインが初期化されるからなるべく使うなと聞いたのに
逆汗見たらジャンプしまくってるじゃないかとか。
8/16bit時代のアセンブラは1バイト、1ステート削って処理速度稼いでたんで
上記の差を補う処理が無駄に思えて・・・。
かといってインラインアセンブラ使うのはなんか違うと(インライン使うと最適化されないとも聞いてたし)。
それならアセンブラでCから呼べる関数書いた方がすっきりするとか。
20世紀時代のことだ。
342: (ワッチョイ 422f-ahOC) 2019/05/03(金)19:43 ID:EWn4tN7a0(1/4)調 AAS
マシン語でコード書いてるときはオンレジスタ思考なのに
当時のCはデフォautoつまりオンメモリなので
ああ、やはりマシン語よりは速度が落ちる言語なんだな
コンパイラ言語とインタプリタ言語のような違いが
もう1つあるんだなって思っていた
343: (ワッチョイ d701-LHRJ) 2019/05/03(金)20:21 ID:B4eLqFJ00(1)調 AAS
スパゲッティなものを書いてるならともかく、真っ当にサブルーチン化してたら必要悪としてレジスタ志向は早々に諦めてたわ。
局所的に最適化するならそれは別問題として解決してた。
344: (ワッチョイ 422f-ahOC) 2019/05/03(金)20:27 ID:EWn4tN7a0(2/4)調 AAS
構造化なんか眼中になかったね
速度こそ純粋で美しい法律だった
345(1): (ワッチョイ e201-VrjD) 2019/05/03(金)20:31 ID:4Ii/FXBd0(1/2)調 AAS
>>340
> 一つ思い出しました、キャリーフラグを活用するアルゴリズムは、そのままでは C でかけずに大変ですね
それはアルゴリズムと言うより実装の話かと
346: (ワッチョイ 422f-ahOC) 2019/05/03(金)20:52 ID:EWn4tN7a0(3/4)調 AAS
PC9801のVRAMを1ドットスクロールさせるのなんか
キャリー使って書いてたのをキャリーなしで書き直させられるのは悲しかった
347(1): ◆QZaw55cn4c (ワッチョイ 8247-R0y6) 2019/05/03(金)21:19 ID:0u/4Gvfl0(1)調 AAS
>>345
>アルゴリズムと言うより実装の話
いや、それは不思議な分類だと思います、DES/AES などはローテート・シフトがそのままアルゴリズムになるのでは?
348: (ワッチョイ e201-VrjD) 2019/05/03(金)22:27 ID:4Ii/FXBd0(2/2)調 AAS
>>347
そのアルゴリズムにキャリーフラグなんて出てこないでしょ?
349: (ワッチョイ 422f-ahOC) 2019/05/03(金)22:32 ID:EWn4tN7a0(4/4)調 AAS
アルゴリズムという特定ワードに囚われて用語の定義の話に逸れていくつまらん展開だ
350(3): (ワッチョイ cb5f-zb9T) 2019/05/04(土)04:19 ID:qzgt3pmZ0(1)調 AAS
文字列入力を受け付けて、それをstrという変数に代入する…というプログラムを書きたいのですが、知りたいことがあって以下のような条件を課させていただきます。
・for文を使い、その中でscanf(“%c”,str[i])により1文字ずつ文字をstrの各配列に格納していくこと
・文字数は最大50文字までとし、たとえば「abcd」などのように4文字であった場合も、abcdと入力→Enterが押された時点で、その文字列をstrに代入して、その4文字を表示して完了とする
・if文を使ってそれを実現すること
#include<stdio.h>
int main(void){
int i,str[50];
for(i=0;i<50;i++){ //入力処理
scanf(“%c”,str[i]);
}
for(i=0;i<50;i++){ //出力
printf(“%c”,str[i]);
}
}
このコードだと、「abcd」と入力してEnterを押しただけでは、出力されません。(50文字入力されるまで入力受け付け状態から遷移しない)
どのように改良すればよいでしょうか?
351(1): (ワッチョイ 7fe9-3iRC) 2019/05/04(土)05:12 ID:Yh80Q70x0(1/3)調 AAS
入力される度に文字のチェックしてみれば。
352: (ワッチョイ e201-VrjD) 2019/05/04(土)05:15 ID:eVIwB2YR0(1/2)調 AAS
>>350
宿題は自分でやれ
353(1): (ワッチョイ 6752-ahOC) 2019/05/04(土)05:21 ID:I31OC90J0(1)調 AAS
何故誰もscanf("%c", str[i])に突っ込まないのか
354(1): (ワッチョイ 177b-VjZg) 2019/05/04(土)05:39 ID:RAMEL17i0(1/2)調 AAS
>>350
「入力処理」のforループで、「50文字入力されたら」を判定してるけど、
もう一方の終了条件「Enterが押されたら」を判定してないからでしょ。
1文字受け取るごとに、Enter '\n' ならループを抜ける、をやらなきゃ。
というわけで >>315 に至る。
>>353 このスレッドの伝統かと。>>299 以下を参照のこと。
あちらはスルーしたのに、こちらでツッコむのは抵抗感がある、みたいな。
355: 354 (ワッチョイ 177b-VjZg) 2019/05/04(土)10:20 ID:RAMEL17i0(2/2)調 AAS
誤: というわけで >>315 に至る。
正: というわけで >>351 に至る。
315 を確認したところ、まるっきり見当違いでもなかったね。
356: (アウアウウー Sabb-H3I8) 2019/05/04(土)10:47 ID:lguQ1Ppja(1)調 AAS
>>354
>>299は見逃していたなあ。空目だな。
357: (アウアウウー Sabb-vI8p) 2019/05/04(土)11:41 ID:yT0QTmUja(1/2)調 AAS
>>350
もし宿題が本当に scanf(“%c”,str[i]) と書いてある場合は先生が間違えてるので「 scanf(“%c”, &str[i]) ですよね?」とツッコミを入れてみると良い。
そうすると君はできる学生と思われて成績が上がるるか、または気に入らんやつと思われて成績が下がると思う。
358(1): (トンモー MM93-qoXq) 2019/05/04(土)13:40 ID:tOD9kuurM(1/2)調 AAS
そういえば東大では今でも
C言語が必修なのか?
まじ時代遅れの馬鹿だと思ってたら、
Cしかできない在日の馬鹿教員が
いるのだとか
359: (ワッチョイ 0663-Cg3z) 2019/05/04(土)13:51 ID:k+B84EwL0(1)調 AAS
学歴コンプレックスの人?
360: (ワッチョイ 6752-ahOC) 2019/05/04(土)14:16 ID:vXlxEQ1E0(1/2)調 AAS
参照型とか出てくるのにそもそも参照がなにかも理解出来てないにわかオブジェクト指向が増えるよりよっぽどマシよ
なんの言語とは言わないけども
C言語なら理解しなければ先に進まないから
361(1): ◆QZaw55cn4c (ワッチョイ 8247-R0y6) 2019/05/04(土)14:19 ID:7fnHNdb20(1/7)調 AAS
>>358
C が分からないようでは話にならないのでは?
362(1): (トンモー MM93-qoXq) 2019/05/04(土)14:47 ID:tOD9kuurM(2/2)調 AAS
>>361
トヨタ系の研究所には
Cの分かる研究員がもういないのです
研究には全く支障がないです
組込みやってる高卒やFランが
Cをやるべきでしょ?
363: ◆QZaw55cn4c (ワッチョイ 8247-R0y6) 2019/05/04(土)14:55 ID:7fnHNdb20(2/7)調 AAS
>>362
それは多分ありえない話でしょうね、なぜならば C は計算機言語の基本で、各種書籍ではアルゴリズムの記述に C を使うものが大半ですから
本も読めない人がトヨタの研究者とか、あなたの空想の話なのでは?
364(1): (ワッチョイ 7fe9-3iRC) 2019/05/04(土)15:22 ID:Yh80Q70x0(2/3)調 AAS
アルゴリズムの勉強はpythonがいいよ
365(2): ◆QZaw55cn4c (ワッチョイ 8247-R0y6) 2019/05/04(土)15:25 ID:7fnHNdb20(3/7)調 AAS
>>364
python で二分木の実装とかできますか?
366(1): (ワッチョイ 7fe9-3iRC) 2019/05/04(土)16:05 ID:Yh80Q70x0(3/3)調 AAS
>>365
できますん
367: (トンモー MM93-qoXq) 2019/05/04(土)16:07 ID:LvYM7SOrM(1)調 AAS
>>365
そんなのはFランの仕事でしょ?
368: (ワッチョイ bb87-ahOC) 2019/05/04(土)16:13 ID:8Q7/PMC20(1/2)調 AAS
論文の次はFランか、哀れだなw
369: (ワッチョイ 6752-ahOC) 2019/05/04(土)16:49 ID:vXlxEQ1E0(2/2)調 AAS
やっぱり相当コンプレックスの塊で頭悪いんだろうなぁ
370(1): ◆QZaw55cn4c (ワッチョイ 8247-R0y6) 2019/05/04(土)18:28 ID:7fnHNdb20(4/7)調 AAS
>>366
本当ですか?ポインタがない python では無理なんじゃないですか!?
371: (アウアウウー Sabb-vI8p) 2019/05/04(土)18:39 ID:yT0QTmUja(2/2)調 AAS
pythonって参照ないの?
372(1): (アウアウエー Sa3a-3iRC) 2019/05/04(土)18:43 ID:gINSNBZZa(1)調 AAS
真面目に言うとpythonは基本的に全部参照渡しだね。
参照したものを直接いじれるかというとそうでない場合があるけども。
373: ◆QZaw55cn4c (ワッチョイ 8247-R0y6) 2019/05/04(土)19:05 ID:7fnHNdb20(5/7)調 AAS
>>372
なるほど、ではユーザー定義の型は自動的に参照扱い、すなわち Java みたいなかんじなんですね
であれば苦労すれば二分木を実装できますね、大変失礼いたしました
374(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 4e3e-Cg3z) 2019/05/04(土)19:18 ID:21Of2ELD0(1/2)調 AAS
>>370
Python に限らず動的型の言語の多くは変数に値を入れるんじゃなくて、
オブジェクトと変数の間に束縛 (bind) を作ることで成り立ってる。
辿ることでオブジェクトを参照するんだ。 実質的にポインタだよ。 むしろポインタしかない。
(小さい値 (小さい数値とか文字とか) はアロケーションを抑制するためにそのまま
ワードに突っ込むような最適化をする言語 (処理系) もあるけども。)
375(1): ◆QZaw55cn4c (ワッチョイ 8247-R0y6) 2019/05/04(土)20:22 ID:7fnHNdb20(6/7)調 AAS
>>374
Java ならば boxing でヒープにとる値とスタックに取る値とをある程度(意識せずに)変換できますね(そういう C/C++ like な意識が皆無ではない、という意味)
ただし、二分木に関してはいいたいことがまだあって、「本物の」二分木は二重ポインタ(ポインタのポインタ)が必要なのではないか?と思っています
さすがに Java には二重ポインタはない、そんな用途の言語じゃない
Python や ruby にはあるのでしょうか?
376(1): (アウアウエー Sa3a-3iRC) 2019/05/04(土)20:55 ID:cZ5M6KFWa(1/3)調 AAS
二重ポインタを何に使う?
Cだと引数でノードのオブジェクトを返す辺りか?
377(1): ◆QZaw55cn4c (ワッチョイ 8247-R0y6) 2019/05/04(土)21:01 ID:7fnHNdb20(7/7)調 AAS
>>376
ノードを追加する関数add の引数を
add(&root, Object)
ってするでしょ?&root ってことは、struct *node のアドレス、すなわち struct node ** が必要なのではないかと
378(3): (アウアウエー Sa3a-3iRC) 2019/05/04(土)21:43 ID:cZ5M6KFWa(2/3)調 AAS
>>377
わからんが、Cでも戻り値でポインタを返せばいいんじゃないか?
379: はちみつ餃子◆8X2XSCHEME (ワッチョイ 4e3e-Cg3z) 2019/05/04(土)21:46 ID:21Of2ELD0(2/2)調 AAS
>>375
参照を持つオブジェクトへの参照を持てるんだから、事実上の二重ポインタとして使えるよ。
380(1): (ワッチョイ bb87-ahOC) 2019/05/04(土)21:57 ID:8Q7/PMC20(2/2)調 AAS
二重までは使うんだよなあ
三重をなぜ使わないか、説明できるか?w
381: (ワッチョイ d701-o1CB) 2019/05/04(土)22:09 ID:RtDHzLy60(1)調 AAS
ガベージコレクションと裸のポインタって相性が悪いような
382: (ワッチョイ e201-VrjD) 2019/05/04(土)22:15 ID:eVIwB2YR0(2/2)調 AAS
>>378
2個返したい時とか、戻り値は成功かどうかのコードを返したいとか
383: (アウアウエー Sa3a-3iRC) 2019/05/04(土)23:07 ID:cZ5M6KFWa(3/3)調 AAS
道はいろいろあると思うが、せっかくあるんだから構造体使って皆くるんじゃえと思うよ。
384: (アウアウウー Sabb-vI8p) 2019/05/05(日)00:20 ID:nwgMKC8Ra(1)調 AAS
微妙にスレチのように思うので続きはJava初心者のスレでやった方が良いのではないか?
まあ人に聞かなくても Java を勉強して Java の API のソースを読めばそういうのをどうしているのかは何れわかると思うけどね。
385(1): (ワッチョイ e22c-4xtZ) 2019/05/05(日)00:21 ID:tvdtPjB+0(1)調 AAS
Ruby での、Jaggy 配列は、
ary = [ ] # 配列の配列
ary.push [ "a" ]
ary.push [ 1, 2 ]
p ary #=> [["a"], [1, 2]]
C/C++ 以外のたいていの言語では、数字などのprimitive 以外は、すべて参照。
(primitiveは参照にするよりも、その場所へ値を埋め込んだ方が速い)
外側の配列は、内側の配列の参照を持っている。
内側の配列は、(primitive以外の)各要素の参照を持っている
primitive以外は、コピーしても参照がコピーされるだけで、値はコピーされない。
つまり、同一インスタンスを指す。
別のインスタンスは作られない
new されていなければ、インスタンスは作られない。
代入しただけでは、参照がコピーされるだけ
これを、shallow copy (浅いコピー)と呼ぶ(同一インスタンス)。
new して、別のインスタンスを作ることを、deep copy (深いコピー)と呼ぶ(別のインスタンス)
386: (ワッチョイ 8252-M0pk) 2019/05/05(日)00:37 ID:RPhfdkos0(1/2)調 AAS
>>385
馬鹿は消えろ
387(1): ◆QZaw55cn4c (ワッチョイ 8247-R0y6) 2019/05/05(日)08:54 ID:3EWrT4Pn0(1/22)調 AAS
>>378
それは無駄な代入が発生するでしょう?
388(1): ◆QZaw55cn4c (ワッチョイ 8247-R0y6) 2019/05/05(日)09:01 ID:3EWrT4Pn0(2/22)調 AAS
>>380
余裕で三重ポインタなどほいほいと使いますよ
2chスレ:tech
void prep_exe(char *sttp, char **path, char ***argv)
char **argv を使うことが理解できるのだったら「argv のアドレスを渡す」みたいな場合に渡された関数側では三重ポインタを使うことになるでしょう
389(1): (ワッチョイ 9b6d-ahOC) 2019/05/05(日)09:04 ID:hoO1o10+0(1)調 AAS
>>388
それcodepadだろ? 使いさえすればいいって話じゃなくて
390: ◆QZaw55cn4c (ワッチョイ 8247-R0y6) 2019/05/05(日)09:08 ID:3EWrT4Pn0(3/22)調 AAS
>>389
無論使いさえすればいい、というわけではなく、この例では小さなシェルを実装しており、シェルのパイプ機能を実装するのに三重ポインタを使ったのです
391(1): (ワッチョイ 7fe9-3iRC) 2019/05/05(日)09:21 ID:2T/oydys0(1/15)調 AAS
>>387
引数を介すと代入が減るってこと?
392(2): ◆QZaw55cn4c (ワッチョイ 8247-R0y6) 2019/05/05(日)09:47 ID:3EWrT4Pn0(4/22)調 AAS
>>391
代入命令が増えるという意味ではなく、「同じ値」なのに代入してしまう、という作業が >>378「戻り値でポインタを返」す方式の書き方だと不可避です
393(13): (ワッチョイ f701-EPtf) 2019/05/05(日)10:05 ID:bV6goPu10(1/7)調 AAS
呼び出しの前後で、ptrの値が 同じかもしれない、場合よっては変わるかもしれない関数
ptr = func1(ptr, opt); と func2(&ptr, opt);
うーんどっちも使うな…
394(1): (ワッチョイ 7fe9-3iRC) 2019/05/05(日)10:28 ID:2T/oydys0(2/15)調 AAS
>>392
じゃあ、一時変数に代入しとけば?
395: ◆QZaw55cn4c (ワッチョイ 8247-R0y6) 2019/05/05(日)10:29 ID:3EWrT4Pn0(5/22)調 AAS
>>393
前者
>ptr = func1(ptr, opt);
は初心者用で、>>392 のいう無駄な代入が含まれています、二重ポインタがわかるのなら後者にするべきです
396(1): ◆QZaw55cn4c (ワッチョイ 8247-R0y6) 2019/05/05(日)10:30 ID:3EWrT4Pn0(6/22)調 AAS
>>394
シンプルな記述ができるのに、わざと複雑な書き方にするのは問題なのでは?
上下前次1-新書関写板覧索設栞歴
あと 606 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.035s