C言語なら俺に聞け 138 [無断転載禁止]©5ch.io
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 8b7b-7i2P)
2016/12/10(土) 21:13:56.19ID:Y8xCOPeF0質問文には最低限の情報としてソースと環境(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/
前
http://echo.2ch.net/test/read.cgi/tech/1475580238/
http://www.geocities.jp/c_cpp_cs/about_c/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
0002デフォルトの名無しさん (ワッチョイ 537b-ifuQ)
2016/12/11(日) 00:16:28.13ID:1/Psj4wD0( ,,゚)゚* ):::::::: HoChu
〜(___)_)〜::::::
0003デフォルトの名無しさん (ワッチョイ 8b4e-Ts63)
2016/12/11(日) 00:27:22.22ID:Fe+GkT0n00004デフォルトの名無しさん (ワッチョイ a74f-drn7)
2016/12/12(月) 16:37:34.92ID:WPCsPjPg00005デフォルトの名無しさん (アウアウイー Sa37-Cn1F)
2016/12/12(月) 20:38:07.05ID:D4fd559ba入力した数値を画面に表示させたいのですが、少し質問させてください
�@入力の際に、例えば「参加人数:4人」のように「参加人数:○人」だけ先に
表示させ、数値を入力すると○が埋まるようにしたいのですが可能でしょうか?
�A入力する数字を一桁に限定し、例えば「23」と打ったらまず2が表示され、
3を打った時点で3に上書きされるようにしたいのですが可能でしょうか?
以上です
暇なときにでもご回答いただければ幸いです
0006デフォルトの名無しさん (ワッチョイ a7e3-VjgG)
2016/12/12(月) 20:57:09.58ID://vq14Rq0両方とも不可
cursesのようなライブラリ使えば可
0007デフォルトの名無しさん (アウアウイー Sa37-Cn1F)
2016/12/12(月) 21:06:02.24ID:D4fd559baありがとうございます
助かりました
いつか挑戦してみようと思います
0008デフォルトの名無しさん (ワッチョイ 6f5b-3ple)
2016/12/12(月) 22:19:08.00ID:tKvygcuz0TextOutで上書きすれば良いだけじゃないの?
0009デフォルトの名無しさん (ワッチョイ ef17-WrC4)
2016/12/12(月) 22:43:54.48ID:XxcsTlOG0カーソル制御や上書き削除やらで面倒だったな
0010デフォルトの名無しさん (ワントンキン MMef-/x+d)
2016/12/12(月) 23:29:21.97ID:hz71Kf5GM一行だけでいいなら、printf ¥r で出来るよ
まぁでもおすすめはcursesかなわりと簡単で便利
0011デフォルトの名無しさん (ワッチョイ 277b-j1Yw)
2016/12/13(火) 05:32:03.76ID:T6NEUE2P0curses使えば楽なのは疑う余地もないけど
0012デフォルトの名無しさん (トンモー MM07-38k1)
2016/12/13(火) 08:46:00.04ID:CeDguAajMぐらいしか覚えてない。
仕事し過ぎて倒れて入院したとき
記憶が一部なくなったみたいなんだ。
仕事し過ぎに注意してね!
0013デフォルトの名無しさん (ガラプー KK77-sx4I)
2016/12/13(火) 19:23:39.69ID:vty9E/+AK文字列のポインタをリターンしたいんですが、どうすればいいのか教えて下さい
char* hage="abc";
return hage;
0014片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK77-sH8c)
2016/12/13(火) 19:49:47.08ID:AlD2ABgfKconst char *hage="abc";
return hage;
0015デフォルトの名無しさん (アウアウイー Sa37-Cn1F)
2016/12/13(火) 19:57:22.74ID:urfJjx8Pa#include <stdio.h>
char* sub(void){
char *hoge = "abc" ;
return hoge ;
}
int main(void){
char *piyo ;
piyo = sub() ;
puts(piyo) ;
return 0 ;
}
0016デフォルトの名無しさん (ガラプー KK77-sx4I)
2016/12/13(火) 20:04:03.56ID:vty9E/+AKconstつけたらエラーになりました
0017デフォルトの名無しさん (ブーイモ MM07-JZIj)
2016/12/13(火) 20:06:58.91ID:Jg0pzD7jM0018デフォルトの名無しさん (アウアウイー Sa37-Cn1F)
2016/12/13(火) 20:12:55.25ID:urfJjx8Pa0019デフォルトの名無しさん (ガラプー KK47-sx4I)
2016/12/13(火) 20:14:57.61ID:vty9E/+AKおさわがせしました
0020デフォルトの名無しさん (ワッチョイ 4bdc-+dBx)
2016/12/13(火) 21:27:28.77ID:yoJDLw390const char *str_ptr(void) {
const char *ret = "some string";
return ret;
}
固定の文字列なら変数に代入する必要すらなくて
const char *str_ptr(void) {
return "constant string";
}
固定文字列を返す関数に実用性があるか不明だけど、
「関数内で生成した文字列だけど外部で書き換えないでね。
変更するなら呼出し側でコピーしてから好きに変更してね」
という意図は明らかにできるかな。
0021片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK77-sH8c)
2016/12/13(火) 22:24:10.67ID:AlD2ABgfKそうした技術は誰もができる訳ではない。
0022デフォルトの名無しさん (ワッチョイ 0b7b-ymeu)
2016/12/13(火) 22:59:11.03ID:tzzF7wIm0死ね、ゴミクズ
static const char *ret = "some string";
0023片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK07-sH8c)
2016/12/13(火) 23:05:12.14ID:AlD2ABgfKうるせえ雑魚。これはポインタだから静的に確保しても変わらない。
無駄にconst付けすぎ。
0024片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK07-sH8c)
2016/12/13(火) 23:07:31.79ID:AlD2ABgfK0025デフォルトの名無しさん (ワッチョイ 533c-drn7)
2016/12/13(火) 23:12:36.49ID:4GRPhoBF0ポインタ戻したあとに利用してもセフセフ (内容の書き換えは駄目だけど)
0026片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK77-sH8c)
2016/12/13(火) 23:17:48.20ID:AlD2ABgfKこのコードは「some string」という文字列をヌル終端で読み込みのみのメモリーに格納し、そのメモリーの先頭アドレスをretにセットする。
古い規格ではconstは必要なかったが、読み込み専用で書き込みできない(read-only)なので、新しい規格ではconstが必要。
0027片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK77-sH8c)
2016/12/13(火) 23:22:12.21ID:AlD2ABgfKとなって文字列はスタックに確保される。この場合constを付けなければ、書き込み可能になる。
スタックメモリーを戻り値として返すのはまずいので、このような配列を返す場合はstaticを付けなければならない。
0028デフォルトの名無しさん (ワッチョイ b3e3-VjgG)
2016/12/13(火) 23:22:36.69ID:Khw0PcSJ00029デフォルトの名無しさん (ワッチョイ 533c-drn7)
2016/12/13(火) 23:44:58.81ID:4GRPhoBF0関数抜けた時にリテラル文字列 "some string" や "constant string" は
「スコープの外に出た時無効になるから、そんなんのポインタ返しても無意味だろ」 と勘違いする人は多いね
0030デフォルトの名無しさん (ワッチョイ b741-l58V)
2016/12/14(水) 07:55:05.48ID:Mw3ROjnJ0そうそう。>>27が色々書いてるけど、スタックに積まれるのはポインタであって、文字列はコンパイル時にread onlyの領域に確保されてるよね。
0031デフォルトの名無しさん (ブーイモ MM47-5xeh)
2016/12/14(水) 08:26:04.47ID:vp5qXEYzM0032デフォルトの名無しさん (ワッチョイ 4324-iA20)
2016/12/14(水) 09:02:00.45ID:lLfa6c4n0c++11規格なら間違いなくある。
つい最近確認した。
多分03でも書いてあるんじゃないかな。
確か、static strage classと同等、みたいな書き方だったような。
0033デフォルトの名無しさん (ドコグロ MMc7-Wysm)
2016/12/14(水) 09:15:55.10ID:aDnd8CGXMJISX3010によれば、文字列リテラルは静的記憶域期間を持ち、プログラムが終了するまで生存する
0034デフォルトの名無しさん (ブーイモ MM47-5xeh)
2016/12/14(水) 10:39:10.20ID:vp5qXEYzM>>33
サンキュ
0035デフォルトの名無しさん (ワッチョイ 7b36-dpej)
2016/12/14(水) 14:05:12.47ID:Q3fXtkGO0>文字列はコンパイル時にread onlyの領域に確保されてるよね。
そうとは限らない
0036デフォルトの名無しさん (ワントンキン MMef-g0tO)
2016/12/14(水) 14:59:39.26ID:q11TWfYqM0037デフォルトの名無しさん (アウアウカー Sa67-xb/r)
2016/12/14(水) 19:08:19.34ID:rxF6bqb2aその癖、rodataに置かれる保証がない
0038デフォルトの名無しさん (ワッチョイ d342-WrC4)
2016/12/14(水) 19:10:44.42ID:h4mrordC00039デフォルトの名無しさん (アウアウカー Sa67-xb/r)
2016/12/14(水) 19:18:33.23ID:rxF6bqb2a0040デフォルトの名無しさん (ワントンキン MMef-g0tO)
2016/12/14(水) 19:30:20.71ID:q11TWfYqM文句はカーニハンに言っておくれ
0041デフォルトの名無しさん (トンモー MM07-38k1)
2016/12/14(水) 20:30:13.70ID:Z+mku6fRM0042デフォルトの名無しさん (ワントンキン MMef-g0tO)
2016/12/14(水) 20:44:27.77ID:q11TWfYqMちなみに SONY News は a =- b; 構文をサポートしていた
0043デフォルトの名無しさん (ワッチョイ 95b3-BQpQ)
2016/12/15(木) 11:21:06.21ID:vd5CEk1t0CMD 0,1,2,3, ...... ,63
↑こんな感じで、カンマ区切り64個の文字列をsscanf()で取り込もうとしましたが、
「_sscanf': too many parameters」というエラーがでて怒られてしまいました。
文字列が16個まではsscanf()でエラーがでませんでした。
sscanf以外で実現する方法はないでしょうか?
コンパイラはKeil社製のC51です。
0044デフォルトの名無しさん (ドコグロ MM1c-qYir)
2016/12/15(木) 11:56:22.89ID:QR6DFXxyMコマンドライン引数 C言語でググれ
0045デフォルトの名無しさん (JP 0H21-sBe1)
2016/12/15(木) 13:10:44.01ID:KqXo4C+PH質問が悪いけど。
0046デフォルトの名無しさん (ワントンキン MM40-Qnvt)
2016/12/15(木) 13:15:54.25ID:4tPXC7shM0047デフォルトの名無しさん (JP 0H21-sBe1)
2016/12/15(木) 13:20:01.21ID:KqXo4C+PHどこまでライブラリ揃ってるかわからんが
strtok使うかstrchrとstrncpyを繰り返していくかくらいかな
0048デフォルトの名無しさん (ワッチョイ 5953-8u2n)
2016/12/15(木) 14:07:18.55ID:lA9gUxPc016個まで読み取れるのならsscanf()1回につき15以下に分けて何回か繰り返し使えば
0049デフォルトの名無しさん (ワッチョイ bf42-8I6M)
2016/12/15(木) 14:19:49.75ID:h9p732cR00050デフォルトの名無しさん (ドコグロ MMb8-1Qes)
2016/12/15(木) 22:25:33.84ID:1piDfet3Ma=-b; がサポートされてなかった頃は、どう表現してたの?
0051デフォルトの名無しさん (ワントンキン MM40-Qnvt)
2016/12/15(木) 23:05:59.73ID:4tPXC7shMa -= b; こちらが仕様に残った
0052デフォルトの名無しさん (ワッチョイ 313b-1Qes)
2016/12/15(木) 23:46:21.78ID:AelGIewF0a=-b;
a-=b;
意味が全然違うんですけど?
0053デフォルトの名無しさん (ワントンキン MM40-Qnvt)
2016/12/16(金) 00:01:29.94ID:NxW+n95+MK&Rの第一版を探してよく読んでみなされ。
古い構文では同じ意味になる。
0054デフォルトの名無しさん (ブーイモ MMb8-NNp8)
2016/12/16(金) 00:11:41.99ID:8smapNZTM0055デフォルトの名無しさん (トンモー MM8d-jDu7)
2016/12/16(金) 08:18:46.38ID:xflKNdYkM0056デフォルトの名無しさん (ドコグロ MMb8-1Qes)
2016/12/16(金) 09:23:50.57ID:4trABnm/Mなるほど、
a=-b;
a= -b;
が違うってことか。
0057デフォルトの名無しさん (ドコグロ MM55-T1UI)
2016/12/16(金) 12:55:58.67ID:r8Wq9TPYM手元の初版(但し石田晴久の翻訳版)だと代入演算子はop=の形だけど、それって原書?
0058デフォルトの名無しさん (ワントンキン MM40-Qnvt)
2016/12/16(金) 13:01:23.14ID:NxW+n95+M注記があるでしょ。
0059デフォルトの名無しさん (ワッチョイ fd7b-NX/j)
2016/12/16(金) 13:33:14.62ID:hTcwG5sq0歴史的意味を持つ53にふさわしいレスだ
0060デフォルトの名無しさん (JP 0H21-sBe1)
2016/12/16(金) 14:16:34.44ID:2JVojfa5H俺も知識としては知っているけどどこで読んだのか全く思い出せない
それにしても初版のフォントきたねぇな
よくこれで勉強できたものだ
0061デフォルトの名無しさん (ワッチョイ a1bd-Vn9u)
2016/12/16(金) 17:25:53.70ID:UN7/R1CA0事に気が付いた。
ある本で学習したコーディングを違う目的に使おうとしてもさっぱり
動かなかったり無反応だったりする。
そこでさんざん悩んで、いつも最終的に行き着く先は
「gccのオプションが適正じゃない」ってことだ。
それぞれのC言語の解説サイトとかでも、読者は当然のように
gccのオプションを正しく指定できるかのように書いてあるが
そこが一番意味わかんないんだよ。
gccのオプションで最も重要なポイントはなんなのかを教えて
くれ。
0062片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKbf-M0Y0)
2016/12/16(金) 17:36:49.95ID:7QWR4VpBK-c
コンパイルのみでリンクはしない。
-o file.exe
-o file.o
出力ファイルを指定する。
-O0 (オーとゼロ)
最適化なし。
-O3
最適化する。
-g -ggdb
デバッグ情報を付加する。
-Idir
ディレクトリdirを#includeの検索パスに追加する。
-Ldir
ディレクトリdirをリンカの検索パスに追加する。
0063片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKbf-M0Y0)
2016/12/16(金) 17:46:27.69ID:7QWR4VpBK-lmylib
ライブラリlibmylib.aをリンクする。
-Wall -pedantic
初心者向けにていねいに警告をしてもらう。
-m32
32ビットプログラムとしてコンパイル・リンクする。
-m64
64ビットプログラムとしてコンパイル・リンクする。
-mwindows
ウィンドウズアプリとしてビルドする。
0064片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKbf-M0Y0)
2016/12/16(金) 18:01:28.85ID:7QWR4VpBK--version
バージョン情報を表示する。
-v --help
詳しいヘルプを表示する。
-std=c11
C11規格でビルドする。
0065デフォルトの名無しさん (ワッチョイ 8ddc-l7I3)
2016/12/16(金) 18:01:46.32ID:2kpKp/Uz0-std=c11 ではダメで -std=gnu11 が必要、とかね。
あと -Wall -Wextra -Werror の三連コンボが好き。
コンパイラ様に奉仕してるようなマゾな気分になれる。
0066デフォルトの名無しさん (ワッチョイ a1bd-Vn9u)
2016/12/16(金) 18:01:48.23ID:UN7/R1CA0C言語の肝はコーディング本体よりここだよな。
最近やっとそういうことに気が付いたぜ。
0067片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKbf-M0Y0)
2016/12/16(金) 18:16:08.68ID:7QWR4VpBK-static
なるべくスタティックリンクとしてリンクする(依存するDLLファイルを少なくする)。
-shared
DLLファイルを作る。
※補足。ライブラリファイルを作成したいときはarというコマンドを使う。
0068デフォルトの名無しさん (ワッチョイ 9c7b-KEV/)
2016/12/17(土) 01:03:25.85ID:lu7YUydK0-O2 にしておく方が無難かな?
0069デフォルトの名無しさん (JP 0H40-GkUW)
2016/12/17(土) 01:12:21.32ID:TZRPZZKHH0070デフォルトの名無しさん (ガラプー KKbf-g9Jd)
2016/12/17(土) 01:27:08.97ID:vFA7y1OsKパーかおめ
0071デフォルトの名無しさん (ワッチョイ f77b-GkUW)
2016/12/17(土) 01:28:41.55ID:SZHJDyPT00072デフォルトの名無しさん (ガラプー KKbf-g9Jd)
2016/12/17(土) 01:49:15.12ID:vFA7y1OsKマジかよせっかく関数自作したのに
0073デフォルトの名無しさん (ワッチョイ f77b-GkUW)
2016/12/17(土) 02:07:07.76ID:SZHJDyPT00074デフォルトの名無しさん (ワッチョイ 413c-0G5/)
2016/12/17(土) 02:26:35.20ID:YWhF62K90を昔使ってたんですけどどこかにいってしまったので
似たようなC言語の支援アプリがあれば教えてください
コンパイルができて数値のトレースができればとりあえずいいです
0075デフォルトの名無しさん (ワッチョイ 9c42-cnOc)
2016/12/17(土) 03:27:17.17ID:ajJ2f2OI00076デフォルトの名無しさん (ワッチョイ 9c42-cnOc)
2016/12/17(土) 03:29:29.92ID:ajJ2f2OI0https://sourceforge.net/projects/orwelldevcpp/files/latest/download?source=files
https://sourceforge.net/projects/orwelldevcpp/files/Setup%20Releases/
0077デフォルトの名無しさん (ブーイモ MMb8-NNp8)
2016/12/17(土) 20:43:48.69ID:OS2ZpCxxM俺も知識として知ってるだけだがソースはここだな
代入演算子
現在は「x -= 1」などと書かれている代入演算子
が、 当時は「x =- 1」と書かれていた。 これは「x
= -1」とまぎらわしく、あきらかな欠陥である。 こ
れについてはDennis Ritchieが多少の 説明 を書いて
いる。
http://www.tom-yam.or.jp/2238/c.html
40年前には今の形だからまさしく無駄知識
0078デフォルトの名無しさん (ワッチョイ ed17-jFiT)
2016/12/17(土) 21:00:13.71ID:MJ/TQYFY0for (i =0;i < N;i += 1) {
hoge;
}
と書くのは異端でしょうか、やっぱりi++としなければいけないのでしょうか?
0079デフォルトの名無しさん (ワントンキン MM40-Qnvt)
2016/12/17(土) 21:02:17.14ID:dZ2G3FBdMNEWSは1987年だから29年前の新機種でこの構文が残存していた
0080デフォルトの名無しさん (アウアウカー Sac1-0N6Z)
2016/12/17(土) 21:13:03.74ID:KmLdyZjaaどっちでも同じなんじゃないの?
0081デフォルトの名無しさん (ブーイモ MM8d-gR9t)
2016/12/17(土) 21:20:22.25ID:fx0VAANBM好きにせい。
0082デフォルトの名無しさん (ワッチョイ 413c-jFiT)
2016/12/17(土) 22:07:19.28ID:NAxcui0t0好きにしろとは思うが異端な書き方をわざわざする奴とは関わりたくないな。
0083デフォルトの名無しさん (ワッチョイ 8da5-6+SE)
2016/12/17(土) 22:59:17.00ID:c3RxWz0q0異端かと言われれば、異端ですかね。
0084デフォルトの名無しさん (ガラプー KKbf-g9Jd)
2016/12/17(土) 23:25:54.38ID:vFA7y1OsK0085デフォルトの名無しさん (ガラプー KKbf-g9Jd)
2016/12/17(土) 23:26:22.75ID:vFA7y1OsK0086デフォルトの名無しさん (ガラプー KKbf-g9Jd)
2016/12/17(土) 23:26:59.79ID:vFA7y1OsK0087デフォルトの名無しさん (ガラプー KKbf-g9Jd)
2016/12/17(土) 23:29:25.97ID:vFA7y1OsKその場合はブロックの中でiを2倍して使うわな
0088デフォルトの名無しさん (ワッチョイ be17-8I6M)
2016/12/17(土) 23:31:47.88ID:KLGPWiej0それオプションじゃなくてgcc拡張機能でしょ
gcc拡張マクロとか色々
基本gccでもC標準コード(C99とかC11とか)で書くべき
0089デフォルトの名無しさん (ワッチョイ 413c-0G5/)
2016/12/18(日) 06:29:31.94ID:IKefTUjV0日本語のものか日本語化できるものじゃないと使えないんですが
0090デフォルトの名無しさん (ワッチョイ 5e3c-J3Q9)
2016/12/18(日) 07:34:21.22ID:CFuzcgv700 スタートならそれでいいけど、そうでないなら
> for(i =1; i < N; i += 2) {
の方が楽
0091デフォルトの名無しさん (ワッチョイ 8017-8I6M)
2016/12/18(日) 08:28:53.15ID:XMF9Nrwk00092デフォルトの名無しさん (ワントンキン MM40-Qnvt)
2016/12/18(日) 09:00:14.06ID:M1pyFWnCM0093デフォルトの名無しさん (ワッチョイ a1c1-0N6Z)
2016/12/18(日) 14:29:08.73ID:DOnS1Isy00094デフォルトの名無しさん (アウアウカー Sac1-W/im)
2016/12/18(日) 16:10:21.20ID:eYgTWekAa0095デフォルトの名無しさん (エーイモ SEc8-WqSn)
2016/12/18(日) 20:40:17.75ID:YPxTMQCXE↓こんな感じでフォーマットで値を代入したい
char[100] s = printf("hello %s", "world")
0096デフォルトの名無しさん (ワントンキン MM40-Qnvt)
2016/12/18(日) 20:42:12.85ID:M1pyFWnCM0097デフォルトの名無しさん (アウアウカー Sac1-MtzF)
2016/12/19(月) 01:09:08.33ID:ueP3u2TYa例えばn=3だとすると
2016
12月19日
東京
のように入力と改行を三回繰り返せるようにしたいのです
できればscanfは使わない方向でいきたいと思います
nが定数なら回数分fgetsを用意すればいいとは思うのですが、不定の場合がわからなくて
よろしくお願いします
0098デフォルトの名無しさん (ワッチョイ ed17-jFiT)
2016/12/19(月) 01:58:42.38ID:4+gdyXDN00099デフォルトの名無しさん (ワントンキン MM40-E6rE)
2016/12/19(月) 12:27:19.85ID:Pjh5QTzyMCTRL+DとかCTRL+Zでループ抜けるようにするとか?
0100デフォルトの名無しさん (ワッチョイ 8ddc-l7I3)
2016/12/19(月) 12:50:31.86ID:T4wJ3ee00while (1) {
if (fgets(buf, sizeof(buf), stdin) == NULL) break;
if (strcmp(buf, ".") == 0) break; /* 終了時は . だけを入力 */
/* buf(入力された1行)を使って何か処理 */
}
こんな感じかな?
「とりあえず無限ループで回して終了判定はループ内で」という気持ち。
普通は fgets() を while のループ条件にすると思うけど、
この例では意図のとらえやすさを優先。
最初の入力行が西暦年ならトータル3行、年のない日付ならトータル2行、
みたいな処理が必要なら見当違いだけど。
0101デフォルトの名無しさん (アウアウカー Sac1-MtzF)
2016/12/19(月) 13:01:28.64ID:4nRPbYuPa>>99
>>100
ありがとうございます
某サイトの問題を解くためのものなので詳しく説明できず申し訳ないです
最初に出題者側がnを標準入力し、その後にn行の文字列が入力され、それに対して処理するような形です
もう少しがんばってみます
0102デフォルトの名無しさん (ワッチョイ e03c-XTx4)
2016/12/19(月) 18:56:58.55ID:2RVgkSEz0> if (strcmp(buf, ".") == 0) break; /* 終了時は . だけを入力 */
"." ではなく ".\n" にしないと抜けられない
0103100 (ワッチョイ 8ddc-l7I3)
2016/12/19(月) 19:32:58.55ID:T4wJ3ee00いつもfgets()の結果に'\n'まで格納されることを忘れる。
というか、fgets()の直後で'\n'の存在を見て入力行を全部拾えたか確認、
そのついでに'\n'を取り除いちゃうんだわ。
0104デフォルトの名無しさん (エーイモ SE8e-WqSn)
2016/12/20(火) 11:17:47.54ID:T47v8o6SE/usr/includes以下をstdio.hで検索すると4つのファイルがヒットします
/usr/include/x86_64-linux-gnu/bits/stdio.h
/usr/include/c++/4.9/tr1/stdio.h
/usr/include/bsd/stdio.h
/usr/include/stdio.h
#include <stdio.h>と書いた時のstdio.hはどこからincludeされてるのでしょうか?
0105デフォルトの名無しさん (ワッチョイ 413c-0G5/)
2016/12/20(火) 13:13:13.47ID:pB91CH7m0コンパイルして実行はできたんですけど
intやcharで指定した整数値、整数列や文字列を
トレースしたものを表示することはできないでしょうか
0106デフォルトの名無しさん (ガラプー KKbf-M0Y0)
2016/12/20(火) 13:19:45.21ID:YnwEGLVJKhttp://takuya-1st.hatenablog.jp/entry/20120920/1348511712
0107デフォルトの名無しさん (ワッチョイ 1f7b-enmE)
2016/12/20(火) 19:21:16.52ID:o+L+5jFr00108デフォルトの名無しさん (ワッチョイ 7c36-BQpQ)
2016/12/21(水) 00:42:22.31ID:TdzlKDyl0以下のコードをgccで-Oでコンパイルすると
func1は逆アセンブラでA.a=2が消えてしまいます。
clangやVCではどちらも消えませんでした。
言語仕様的にはどの動作もありなのでしょうか?
void func1() {
struct { volatile int a; } A = {1};
printf(
0109デフォルトの名無しさん (ワッチョイ 7c36-BQpQ)
2016/12/21(水) 00:48:15.78ID:TdzlKDyl0https://goo.gl/Vv3SY8
0110デフォルトの名無しさん (ワッチョイ be17-8I6M)
2016/12/21(水) 00:53:52.33ID:hCsx8Epe0C言語ではコードで(代入操作等々)何もして無くても勝手に変数の中身が変わる可能性がることをコンパイラに示唆する
コンパイラはその示唆を受けてコードで(代入操作等々)何もして無くても最適化で勝手に除外することから回避させる
0111デフォルトの名無しさん (ガラプー KKbf-g9Jd)
2016/12/21(水) 02:00:53.33ID:09QnAhYDKマロックで確保した領域は初期化してくれないって認識で10年近くやってるんだけど合ってる?
あとマロックで確保することもあるけど、しないこともあるポインタを
フリーするときにいつも困る。
できるだけ初期化時にヌルを入れて、フリーするときにヌルかどうかチェックさてるんだけど、
たまに忘れてマロックしてないポインタにフリーかけて原因不明のクラッシュが発生する。
もう少しスマートなやり方はないものか。
0112デフォルトの名無しさん (ワッチョイ 9c7b-KEV/)
2016/12/21(水) 03:27:15.89ID:KDR4mUhA0というか、もう既に、誰かが作っているはず
0113デフォルトの名無しさん (ブーイモ MMb8-NNp8)
2016/12/21(水) 03:37:07.42ID:UEWExIW4M初期化でint *p=NULLとかすればいいだけでは?
グローバル使い回してるならfree後きちんとNULL入れるとか
0114デフォルトの名無しさん (ワッチョイ 3a13-0G5/)
2016/12/21(水) 07:51:57.04ID:zzXbA3YE0>普通に宣言した変数は勝手にゼロで初期化
されない
>できるだけ初期化時にヌルを入れて、フリーするときにヌルかどうかチェックさてるんだけど、
あまりよくない,ロジックとしてフリーするかしないかを決めるように作る
0115デフォルトの名無しさん (トンモー MM8d-jDu7)
2016/12/21(水) 08:34:41.63ID:UE5SYSGLMそれはそもそもプログラマとして、
仕事で作ってるんじゃないよね?
仕事でそのレベルだと
プログラマ辞めて欲しい。
迷惑だから。
0116デフォルトの名無しさん (アウアウカー Sac1-MtzF)
2016/12/21(水) 08:38:04.20ID:ckTdq8QXa0117デフォルトの名無しさん (ワッチョイ 9d4e-i+Qt)
2016/12/21(水) 09:48:09.17ID:mEC73fYi0当然ですよね皆さん
0118デフォルトの名無しさん (ワッチョイ bf42-8I6M)
2016/12/21(水) 09:55:04.66ID:eJeA761i00119デフォルトの名無しさん (ワッチョイ d1a1-YA5h)
2016/12/21(水) 11:37:02.65ID:DeAhOSlZ0グローバル変数は、0になってる。
関数とかブロックのなかにあるのは、自分で初期化しなければならない
0120104 (エーイモ SEc8-WqSn)
2016/12/21(水) 12:13:59.21ID:hWdBWEeDE見やすいように加工しました
これ全部辿ってもstdio.hを含むディレクトリがありませんでした
[programs]
/usr/bin
/usr/lib/llvm-3.9/bin
/usr/x86_64-linux-gnu/bin
[libraries]
/usr/lib/llvm-3.9/lib/clang/3.9.1
/usr/lib/gcc/x86_64-linux-gnu/4.9
/usr/lib/x86_64-linux-gnu
/lib/x86_64-linux-gnu
/lib64
/usr/lib/x86_64-linux-gnu
/usr/lib
/usr/lib/llvm-3.9/lib
/lib
/usr/lib
0121デフォルトの名無しさん (JP 0H21-sBe1)
2016/12/21(水) 12:25:58.51ID:IT3zLaEfH>>107
0122デフォルトの名無しさん (ワッチョイ 8ddc-l7I3)
2016/12/21(水) 12:30:57.72ID:KtI+UjCH0>>106 のリンク先の一部だけ読んで早とちりしてるな。
print-search-dirs のオプションはリンカ向けのパス指定らしい。
#include のパスはコンパイラに -v をつけて調べるみたいだぞ。
具体的には↓
$ gcc -v main.c
または >>107 のプリプロセッサの出力を得る手法
$ gcc -E main.c
0123104 (エーイモ SE8e-WqSn)
2016/12/21(水) 18:00:41.19ID:WQL39TxQE先輩方ありがとうございます
0124デフォルトの名無しさん (ワッチョイ 9e5b-zrF5)
2016/12/21(水) 20:11:21.17ID:zZhKNwXq0\0を入れる。
0125デフォルトの名無しさん (ワッチョイ 3a13-0G5/)
2016/12/21(水) 20:38:11.00ID:zzXbA3YE0グローバル変数?何それ?
0126デフォルトの名無しさん (ワッチョイ 3a13-0G5/)
2016/12/21(水) 20:38:52.35ID:zzXbA3YE00 でいいのになぜ \ をつけるのか?
0127デフォルトの名無しさん (ワッチョイ 9e17-3Pgg)
2016/12/21(水) 22:09:33.49ID:lWq75keW0言語仕様上全て0で書けるとしてもだ
0128デフォルトの名無しさん (ワッチョイ 9cba-0G5/)
2016/12/21(水) 22:41:46.82ID:LwOfWJ5k00129デフォルトの名無しさん (ワッチョイ d1a1-YA5h)
2016/12/21(水) 23:16:38.96ID:DeAhOSlZ0#include <stdio.h>
#include <string.h>
char clear[BUFFER_SIZE];
int main(void)
{
char rubbish[BUFFER_SIZE];
int k;
for(k = 0; k < BUFFER_SIZE; k++) {
if(rubbish[k]) {
putchar('o');
} else {
putchar('_');
}
}
putchar('\n');
memcpy(rubbish, clear, BUFFER_SIZE);
for(k = 0; k < BUFFER_SIZE; k++) {
if(rubbish[k]) {
putchar('o');
} else {
putchar('_');
}
}
return 0;
}
0130デフォルトの名無しさん (ガラプー KK8d-g9Jd)
2016/12/21(水) 23:39:29.92ID:09QnAhYDKグロ変とロー変で初期化具合が違うのは知らなかった。
とりあえず今のところクレームは来てないが気を付けておくよ。
メモリの安全な確保と解放はやっぱり自分で実装しなきゃいけないんだな。
0131デフォルトの名無しさん (ワッチョイ be17-8I6M)
2016/12/21(水) 23:45:21.68ID:hCsx8Epe0普通にメモリリークやん
0132デフォルトの名無しさん (ブーイモ MMb8-sBe1)
2016/12/21(水) 23:56:53.47ID:RIWp4NgqMクレームとか気をつけるとかのレベルじゃなくて
今すぐ詫び入れて修正してまわるべき件
0133デフォルトの名無しさん (ワンミングク MMff-TSM7)
2016/12/22(木) 00:20:54.07ID:uQsPz27EM初心者がよく使うWindowsで同じくらい簡単に扱えるツール知らんけど
0134デフォルトの名無しさん (ワッチョイ df17-g1cW)
2016/12/22(木) 00:50:55.08ID:HKoOWrI1010年でこのレベルのコードを書く奴を野放しにするってのはもう会社としてもダメだね
どんな試験して通したんだよと
0135デフォルトの名無しさん (ワッチョイ 3f48-5BdW)
2016/12/22(木) 03:23:33.75ID:ZunrXhMa00136デフォルトの名無しさん (ワッチョイ 7f5b-agOw)
2016/12/22(木) 04:30:13.97ID:tW0chUkJ0動的変数は初期化されない。
モニタの前の初心者のみんな!また一つ勉強になったな!
0137デフォルトの名無しさん (ワッチョイ 9f7b-LLwc)
2016/12/22(木) 05:27:51.68ID:wOMf5z1o0スクリプト言語などで多用される実行時に型が決定される変数がいわゆる動的変数と呼ばれるもの
0138デフォルトの名無しさん (ワッチョイ a74e-qjDb)
2016/12/22(木) 05:29:51.18ID:bsgStS2K00139デフォルトの名無しさん (ドコグロ MMdf-PK0Z)
2016/12/22(木) 06:48:07.34ID:YVr1LIe6Mそれは動的型付け
そもそも動的変数ってあまり言わないけど静的変数云々の流れなら動的に確保される変数を示すのは自明
0140デフォルトの名無しさん (ワッチョイ 9f7b-LLwc)
2016/12/22(木) 06:52:25.84ID:wOMf5z1o00141デフォルトの名無しさん (ワッチョイ 0fba-i5Qz)
2016/12/22(木) 06:59:11.51ID:LHSvnxW/00142デフォルトの名無しさん (ワッチョイ 9f7b-LLwc)
2016/12/22(木) 07:01:23.72ID:wOMf5z1o00143デフォルトの名無しさん (ワッチョイ 8f13-i5Qz)
2016/12/22(木) 07:04:29.08ID:avfrOzDw0#define NULL 0 だよ
\0 は 0 といっしょだよ
全部意味は一緒だよ
0144デフォルトの名無しさん (ワッチョイ 8f13-i5Qz)
2016/12/22(木) 07:05:28.35ID:avfrOzDw0グローバル変数ってなんや?
0145デフォルトの名無しさん (ドコグロ MMdf-PK0Z)
2016/12/22(木) 07:06:44.95ID:YVr1LIe6M0146デフォルトの名無しさん (ワッチョイ 9f7b-LLwc)
2016/12/22(木) 07:17:57.56ID:wOMf5z1o0だからポインタ経由でアクセスするしか方法がない
0147デフォルトの名無しさん (ワッチョイ 6717-g1cW)
2016/12/22(木) 07:38:31.85ID:fTnZmeNI0静的変数と動的変数だと意思疎通しにくい。
時間と空間がごっちゃになってる。
0148デフォルトの名無しさん (ワッチョイ 9f7b-LLwc)
2016/12/22(木) 07:48:36.38ID:wOMf5z1o0それを言うなら寿命とスコープだと思うけど
0149デフォルトの名無しさん (アウアウカー Sa3f-T2iK)
2016/12/22(木) 07:54:29.70ID:tsoLK3Hka0150デフォルトの名無しさん (ワンミングク MM5f-DNID)
2016/12/22(木) 08:03:06.73ID:gEyN05DVMいつの時代の話し?
ANSI になった時点で (void*)0 だった気がする
0151デフォルトの名無しさん (ドコグロ MMdf-PK0Z)
2016/12/22(木) 08:08:06.14ID:YVr1LIe6Mいちいち動的型付けの話を混ぜるなよ
struct + union で Variant 型を作るとか普通にあるし文脈的にそんなこと言ってるのはお前だけ
0152デフォルトの名無しさん (ドコグロ MMdf-PK0Z)
2016/12/22(木) 08:09:37.36ID:YVr1LIe6M> グローバル変数ってなんや?
とか言ってる池沼の相手をするなよ...
0153デフォルトの名無しさん (ワッチョイ 9f7b-LLwc)
2016/12/22(木) 08:15:21.36ID:wOMf5z1o0いや動的型付けの話など一言も言ってないんだが
そもそもC言語は静的型付き言語であって実行前にすべての変数の型を指定する必要がある
いきなりmallocみたいなライブラリ関数の話を持ち出したのはそっちだろ
0154デフォルトの名無しさん (ワンミングク MM5f-DNID)
2016/12/22(木) 08:16:48.25ID:gEyN05DVM0155デフォルトの名無しさん (ドコグロ MMdf-PK0Z)
2016/12/22(木) 08:31:51.47ID:YVr1LIe6M> いや動的型付けの話など一言も言ってないんだが
はあ?
> スクリプト言語などで多用される実行時に型が決定される変数がいわゆる動的変数と呼ばれるもの
0156デフォルトの名無しさん (ワッチョイ 9f7b-LLwc)
2016/12/22(木) 08:34:46.71ID:wOMf5z1o0型システムそのものの話と変数宣言の言語実装の話をごっちゃにするなよ
0157デフォルトの名無しさん (ドコグロ MMdf-PK0Z)
2016/12/22(木) 08:42:36.28ID:YVr1LIe6Mお前が言うなよ w
0158デフォルトの名無しさん (ワッチョイ af33-Esd/)
2016/12/22(木) 08:53:59.83ID:SLe+oBSu0違うでしょ。
ほとんどの場合において「値」が同じだけで、「意味」は全く違うから。
とりま C faq 読もう。
更に、リテラル0は表記箇所の文脈に応じて、ヌルポと解釈されるか、値0とされるかが変わるので厄介な場合がある。
…と言うのも有名な話。
0159デフォルトの名無しさん (ワッチョイ 9f7b-LLwc)
2016/12/22(木) 08:56:39.67ID:wOMf5z1o0結局なにが言いたいの?
C言語でも動的変数が使えると言いたいの?
例えば、JavaScriptにおけるvar型に相当するものがC言語でも使えるということ?
0160デフォルトの名無しさん (ワッチョイ df16-WoaB)
2016/12/22(木) 12:40:30.36ID:I+XQXe+300161デフォルトの名無しさん (ドコグロ MMdf-PK0Z)
2016/12/22(木) 12:44:28.73ID:YVr1LIe6Mこの文脈で動的型付けの話をする奴は邪魔って話
0162デフォルトの名無しさん (ドコグロ MM7f-XDb5)
2016/12/22(木) 12:45:23.04ID:l6mpIMJlM0163デフォルトの名無しさん (アウアウカー Sa3f-T2iK)
2016/12/22(木) 12:45:45.81ID:VZ4t0q/ta0164デフォルトの名無しさん (ドコグロ MMdf-PK0Z)
2016/12/22(木) 12:45:57.14ID:YVr1LIe6Mだね
俺もそう思う
0165デフォルトの名無しさん (ドコグロ MM7f-XDb5)
2016/12/22(木) 12:46:00.18ID:l6mpIMJlM0166デフォルトの名無しさん (ワッチョイ abe3-eO0d)
2016/12/22(木) 19:48:06.13ID:73EJ+NlS0外部変数(グローバル変数) 0で初期化
自動変数(ローカル変数) 初期化必須
静的変数(スタティック変数) 0で初期化
0で初期化が保証されていても、明示するのが好ましい (static int global = 0;)
動的確保(実行時メモリ割り当て)
動的確保されたメモリ領域を変数に代入するとき
その変数を動的変数と呼ぶ風習はCにない
構造体と共用体でバリアント型の下りはデータ構造の話で、また別
>>136は確信犯だろワロタ
0167デフォルトの名無しさん (ワッチョイ a74e-qjDb)
2016/12/22(木) 19:51:42.37ID:bsgStS2K00168デフォルトの名無しさん (ワッチョイ 8f13-i5Qz)
2016/12/22(木) 20:32:19.49ID:avfrOzDw0残念
#define NULL 0
が最近のトレンド
0169デフォルトの名無しさん (ワッチョイ 8f13-i5Qz)
2016/12/22(木) 20:33:40.19ID:avfrOzDw0C FAQ を熟読しなければならないのはお前だ
0170デフォルトの名無しさん (ワッチョイ 8f13-i5Qz)
2016/12/22(木) 20:35:05.76ID:avfrOzDw0外部変数と静的変数?
どちらも一緒だが?
好ましい?
どっちなんだ?
0171デフォルトの名無しさん (ワッチョイ abe3-eO0d)
2016/12/22(木) 21:03:13.21ID:73EJ+NlS0一緒じゃない
ただの外部変数なら別ファイルからexternで参照可能
0172デフォルトの名無しさん (ワッチョイ 633c-i5Qz)
2016/12/22(木) 21:09:14.41ID:LRLJsAft0何時までで生きてるかの生命の話
0173デフォルトの名無しさん (アウアウカー Sa5f-GvIT)
2016/12/22(木) 21:21:33.78ID:H9zIAGx1a自動記憶期間なのは、無結合かつstaticでない場合
変数を外部、自動、静的で分けてる時点で間違い
0174デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)
2016/12/22(木) 21:32:07.85ID:/ytrOsGa0NULLが0なのはC++
ここはCスレ
0175デフォルトの名無しさん (ワッチョイ abe3-eO0d)
2016/12/22(木) 21:38:08.38ID:73EJ+NlS0確かめてみたら>>173の言う通りでつ
0176デフォルトの名無しさん (ワッチョイ d37b-jVSv)
2016/12/22(木) 21:44:53.05ID:PGCHp0ah0その意味であるメモリ領域の生存期間を明言することは不可能である
パスワード等の一時的な機密情報の読み書きに利用した領域は意識してスワイプしなければならない
0177デフォルトの名無しさん (オッペケ Sr6f-vX8b)
2016/12/22(木) 21:47:39.78ID:aXWpoPLSrガッ!
0178デフォルトの名無しさん (ワッチョイ 6b7b-gVVB)
2016/12/22(木) 21:48:31.36ID:/ytrOsGa0http://ideone.com/7aCxkN
http://ideone.com/2DPmRv
0179デフォルトの名無しさん (アウアウカー Sa5f-6FRj)
2016/12/22(木) 22:03:00.09ID:9xT7uFfnaそれを言うならスコープじゃなくてstorage duration(記憶期間)だっていってるだろ!!!
まぁ普段は全く気にしないけどこの流れでこのミスは突っ込まざるを得んわ
0180デフォルトの名無しさん (ワッチョイ abe3-eO0d)
2016/12/22(木) 22:06:20.76ID:73EJ+NlS0鳥肌実で脳内再生されてワロタ
0181デフォルトの名無しさん (ワッチョイ 377b-3tOZ)
2016/12/23(金) 00:41:11.27ID:kZ6vwWWk0> 0で初期化が保証されていても、明示するのが好ましい (static int global = 0;)
ダメ オブジェクトが肥大する
0182デフォルトの名無しさん (ワッチョイ 233b-4FBo)
2016/12/23(金) 00:44:08.36ID:R3LGx2Ye0ガッ!
0183デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)
2016/12/23(金) 00:56:34.50ID:i6XgFiMY0何言ってんだ?
0184デフォルトの名無しさん (ワッチョイ 0790-uRrA)
2016/12/23(金) 01:03:18.60ID:NoTKxOMK0暗黙の初期化を使わずに個別に入れるしかないんじゃなかったっけ?
0185デフォルトの名無しさん (ワッチョイ 9f7b-ecDe)
2016/12/23(金) 04:13:13.05ID:Ptdk1YEU00186デフォルトの名無しさん (ワッチョイ 0f7b-Ao4e)
2016/12/23(金) 04:20:24.28ID:UeJSrfIM0問題はポインタの値がNULLかどうかでしょ?
0187デフォルトの名無しさん (ワッチョイ ff42-W2u1)
2016/12/23(金) 04:35:35.84ID:S57Ht5Rq0ながれしらんが
0188デフォルトの名無しさん (ワッチョイ ff42-W2u1)
2016/12/23(金) 04:39:13.55ID:S57Ht5Rq0NULLマクロは、stdio.hなどをincludeすると定義される。
NULLポインターは、実装上の制約からアドレスであり、その環境内において、決して他に使用されることのない番地を用いることになる。
したがって、その値は環境によって異なる。
Cでは、移植性に配慮し、これをNULLマクロによって定義した。
0番地
殆どのプロセッサー環境で、そのアドレスは0番地が使われる。
まれに異なる番地を用いるシステムもあるが、Cの規格上、その場合も0番地と可換でなければならない。
結果として、NULLポインターは0と書いておけば、Cコンパイラーが自動的に対応してくれることになっている。
定義Cでは、殆どの環境で次のように定義されている。
#define NULL ((void *)0)
但し、C++ではこの定義をそのまま使えない。
C++はvoid *から他のポインター型に暗黙的な変換をせず、エラーになるからである。
C++では数値の0をNULLポインターとして使うことになったため、C++では次のように定義されている可能性がある。
#define NULL 0
http://www.wdic.org/w/TECH/NULL
0189デフォルトの名無しさん (ワッチョイ 9f7b-ecDe)
2016/12/23(金) 04:44:25.42ID:Ptdk1YEU0唯一の例外が0リテラルを代入する場合であって、この場合は0は空ポインタの糖衣構文とみなされる
要するに>>188の
>結果として、NULLポインターは0と書いておけば、Cコンパイラーが自動的に対応してくれることになっている。
が正解
0190デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z)
2016/12/23(金) 06:43:34.34ID:tydkaaKw0> ポインタに即値を代入することにほとんどの場合は意味はない
組み込みだと普通にやってるが?
0191デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)
2016/12/23(金) 07:05:11.47ID:i6XgFiMY0日本語読めないのかな?
0192デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z)
2016/12/23(金) 07:41:23.00ID:tydkaaKw0説明してみ
0193デフォルトの名無しさん (アウアウカー Sa5f-GvIT)
2016/12/23(金) 07:51:18.74ID:/sFuOyUYa> 定義Cでは、殆どの環境で次のように定義されている。
> #define NULL ((void *)0)
言語規格で空ポインタ定数は0をvoid*に型変換したものと決まっている
規格に準拠している環境は、殆どではなく全て同等の定義だろ
0194デフォルトの名無しさん (ワッチョイ 9f7b-LLwc)
2016/12/23(金) 07:59:42.47ID:Ptdk1YEU0おそらくポインタ変数に対するI/Oポートマッピングのことを言っているのだろうが、
それは単にポインタ変数の使い方だけの話で、ユーザーが変数の用途として意味づけを
行なっているだけ
C言語の言語仕様として意味を持っているのは、0が空ポインタの意味を持つというのが
ポインタに対する唯一の例外項目
0195デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)
2016/12/23(金) 08:22:17.71ID:i6XgFiMY0ほとんど の意味が解らないなら辞書引けよ
0196デフォルトの名無しさん (ワッチョイ 8f13-i5Qz)
2016/12/23(金) 08:36:51.35ID:xv4JdZit0>NULLが0なのはC++
つhttp://www.kouno.jp/home/c_faq/c5.html#5
0197デフォルトの名無しさん (ワッチョイ 233b-4FBo)
2016/12/23(金) 08:39:43.05ID:R3LGx2Ye00198デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z)
2016/12/23(金) 08:57:18.06ID:tydkaaKw0ごめんマジで言ってることがわからん
unsigned char *p = 0x12345678;
unsigned char d = *p;
に意味があるかどうかの話なんだが、言語仕様に違反してるとでも言うのか?
>>195
意味のない代入なんてしてるアホはほとんどいないが? w
0199デフォルトの名無しさん (ワッチョイ 9f7b-LLwc)
2016/12/23(金) 09:54:29.05ID:Ptdk1YEU0>unsigned char *p = 0x12345678;
これ自体が意味のない代入の典型
宣言済みの変数のアドレスであれば意味があるが、記憶領域のアドレスそのものをリテラル値で与えても
ほとんど意味のある結果は得られない
まあ先に述べたように組み込み用途のメモリマップトI/Oの様なアドレス固定の場合は#pragma疑似命令などで
アドレス指定するケースならあり得る
ただ上記の0x12345678のような意味のない値だと参照先のメモリアドレスの存在そのものが保証できない
0200デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z)
2016/12/23(金) 09:58:31.62ID:tydkaaKw0#pragma も意味わからんが
> ただ上記の0x12345678のような意味のない値
サンプルの意味もわかってないのかよ w
0201デフォルトの名無しさん (ワッチョイ bf6c-i5Qz)
2016/12/23(金) 10:05:01.71ID:jXrWBMcI0即値を入れてもOSあり、MMUありではほとんどはねられてしまう。
0x1234みたいな値をキャストしてポインタとして扱ってそのアドレスに
アクセスできるのは組み込みの世界の話でしょ、ってことだと思うが。
0202デフォルトの名無しさん (ワッチョイ 9f7b-LLwc)
2016/12/23(金) 10:10:44.89ID:Ptdk1YEU0本当にポインタにリテラル値を代入することの無意味さが理解できていないのか?
あえてリテラル値として代入するのであれば文字列リテラルであれば先頭アドレスとしては有効となるが、
数値のリテラル値を代入するとメモリの不正アクセスで実行時エラー起こすのが関の山だぞ
0203デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z)
2016/12/23(金) 10:23:04.08ID:tydkaaKw0> アクセスできるのは組み込みの世界の話でしょ、ってことだと思うが。
はなっから組み込みでは
って書いてあるけど?
>>202
> あえてリテラル値として代入するのであれば文字列リテラルであれば
それは「即値の代入」とは違う話
てかお前レベル低すぎ
0204デフォルトの名無しさん (ワッチョイ b77b-xrXw)
2016/12/23(金) 10:26:41.29ID:f6uWmMmm0メモリーアドレスの絶対値の代入は当たり前だった
MMU な CPU と対応 OS ではやる場面自体がなくなった
0205デフォルトの名無しさん (ワッチョイ 9f7b-LLwc)
2016/12/23(金) 10:26:50.38ID:Ptdk1YEU0というかC言語でまともなプログラム組んだことあるのか?
0206デフォルトの名無しさん (ワッチョイ bf6c-i5Qz)
2016/12/23(金) 10:31:12.12ID:jXrWBMcI0だから組み込み以外で語ろうとしても意味ないよねって話
それで終わる
0207デフォルトの名無しさん (ワッチョイ afd2-vX8b)
2016/12/23(金) 11:02:41.55ID:x0WLOQ6R0デバイスドライバーとか
0208デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z)
2016/12/23(金) 12:24:44.96ID:tydkaaKw0> 組み込みやっていて#pragma疑似命令を知らないとかあり得ないだろ
で、#pragma が
> ポインタに即値を代入すること
にどう関係するんだ? w
>>206
何を言いたいのかよくわからんが
組み込みなら
> ポインタに即値を代入することにほとんどの場合は意味はない
は間違いってことでいいよね?
0209デフォルトの名無しさん (ワッチョイ 6f5a-i5Qz)
2016/12/23(金) 12:28:52.80ID:x0B+xQIa0>組み込みなら
>> ポインタに即値を代入することにほとんどの場合は意味はない
>は間違いってことでいいよね?
それは当たり前。でもここはマイコンのスレじゃないので
一般的には意味がないといわれてもしょうがない。
0210デフォルトの名無しさん (ワッチョイ 9f7b-LLwc)
2016/12/23(金) 12:36:29.37ID:Ptdk1YEU0割り当て先頭アドレス、スタートアップルーチンのエントリアドレス指定などの初期設定を#pragmaで行なう
先頭アドレス以降の固定アドレスについてはポインタ配列で行なうのが一般的だろ
その場合でも移植性や再利用を考慮してRAMエリアに関しては極力 絶対アドレス指定を避けるのが常識だろ
というか知っていてとぼけているのか?
0211デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z)
2016/12/23(金) 12:48:46.63ID:tydkaaKw0C言語で組み込みが一般的でない?
なかなか面白い意見だな w
>>210
> その場合でも移植性や再利用を考慮してRAMエリアに関しては極力 絶対アドレス指定を避けるのが常識だろ
RAM エリアの話なんて誰もしてないけど?
そもそもアドレスを #define しとくぐらいは常識だし、ボードメーカーからヘッダーファイルで提供されることも多いぞ
ひょっとして
即値 = 数値直書き
とか思ってるのか?
0212デフォルトの名無しさん (ワッチョイ 9f7b-LLwc)
2016/12/23(金) 12:51:18.15ID:Ptdk1YEU00213デフォルトの名無しさん (ワッチョイ 9f7b-LLwc)
2016/12/23(金) 12:54:23.15ID:Ptdk1YEU0#defineはコンパイル時の値の置き換えだけで、コンパイラに対するバイナリの生成アドレスの指定まで出来ないだろ
0214デフォルトの名無しさん (ワッチョイ 374f-i5Qz)
2016/12/23(金) 13:03:25.48ID:uHrKWqOK0ポインターの指し先を #pragma で制御する方法もあれば
マクロなりでポインターの指し先を直に代入することもあれば
インラインアセンブラでごりごりすいることもあれば
環境が適合してて、記述と動作が意図したとおりになってるならそれでいいや
0215デフォルトの名無しさん (ブーイモ MM3f-rd4d)
2016/12/23(金) 13:11:07.92ID:0Ly89bEjM0216デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z)
2016/12/23(金) 13:28:47.67ID:tydkaaKw0なんか必死にセクションの話に持っていきたいみたいだが、ポートアドレスとかの話だからな
0217デフォルトの名無しさん (ワッチョイ 9f7b-ecDe)
2016/12/23(金) 13:44:23.58ID:Ptdk1YEU0とりあえず元に戻って、>>189で言った通り
「ポインタのアドレスで特別な意味を持つのは0リテラルだけでこれは空ポインタのシンタックスシュガーである」
これだけでもういいよ
0218デフォルトの名無しさん (ワンミングク MM5f-DNID)
2016/12/23(金) 13:47:00.08ID:qrHoZZWXM0219デフォルトの名無しさん (ワッチョイ 7f5b-agOw)
2016/12/23(金) 13:55:25.72ID:lJhRFWoH0とことん争うべき。
0220デフォルトの名無しさん (ドコグロ MM1f-PK0Z)
2016/12/23(金) 14:06:35.32ID:VjYtccRDM#pragma とか言い出すような知ったか君を苛めるなよ
0221デフォルトの名無しさん (アウアウカー Sa5f-GvIT)
2016/12/23(金) 14:26:08.94ID:AC5C5wbVaこれもポインタに即値代入するケースか
0222デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z)
2016/12/23(金) 15:23:46.69ID:tydkaaKw0MAP_FIXED のことか?
0223デフォルトの名無しさん (エーイモ SEff-cm93)
2016/12/23(金) 17:18:18.80ID:Nly1KFTtE例えば先頭の文字をヌル文字に置換するためにこういう風に書くと何も表示されなくなりました
どうやって置換するんでしょうか?
#include <stdio.h>
int main()
{
char name[3] = "abc";
name[0] = '\0';
printf("%s", name);
return 0;
}
0224デフォルトの名無しさん (アウアウカー Sa5f-GvIT)
2016/12/23(金) 17:31:00.56ID:iWTFjrQCammap失敗時の返り値
0225デフォルトの名無しさん (ワッチョイ 0f9b-uRrA)
2016/12/23(金) 17:31:00.70ID:XErTRk4H0" bc"と表示されて欲しいなら、スペースを入れればいい
char name[4] = "abc";
name[0] = ' ';
0226デフォルトの名無しさん (ワッチョイ 374f-i5Qz)
2016/12/23(金) 17:31:29.90ID:uHrKWqOK0だから name[0] = '\0' の代入を実施すると 表示はそこで打ち切られる=何も表示しない
printf("[%c][%c][%c]", name[0], name[1], name[2]);
0227デフォルトの名無しさん (ブーイモ MM3f-rd4d)
2016/12/23(金) 17:32:23.44ID:0Ly89bEjMname[1]='\0';ならaが表示されるだろ
0228片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKdf-t2A3)
2016/12/23(金) 17:33:50.58ID:3xdKhrkhKC文字列はヌル文字を文字列の終端として解釈される。
つまり、ヌル文字があったら、そこで文字列の終わりと見なされる。
確認したいなら一文字ずつスキャンするか、ヌル文字の後のアドレスを指定する。
0229デフォルトの名無しさん (ドコグロ MM1f-PK0Z)
2016/12/23(金) 17:35:48.73ID:LZUt3xBXM意味わからん...
0230デフォルトの名無しさん (アウアウイー Sa4f-T2iK)
2016/12/23(金) 17:39:23.32ID:3aRx8Kt+a0231片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK6f-t2A3)
2016/12/23(金) 17:42:56.09ID:3xdKhrkhK0232デフォルトの名無しさん (ワッチョイ 6717-g1cW)
2016/12/23(金) 17:55:32.26ID:sMdCo7/p00233デフォルトの名無しさん (ワッチョイ 633c-i5Qz)
2016/12/23(金) 18:18:02.05ID:te4/+lr90バッファサイズを渡して、そのサイズ内で打ち切る系は
\0 を含んでバッファ内に収めるのか
\0 を含まずにバッファ内に収めるかで変わってくるねー
0234デフォルトの名無しさん (ワッチョイ 7bdc-aVNS)
2016/12/23(金) 19:51:00.33ID:RXSiKULR0char name[3] = "abc"; // 文字列の格納先としては配列の要素が不足
という間違いを
>>225 の回答では何の説明もなく
char name[4] = "abc"; // 終端の'\0'の分まで配列を確保
と当然のごとく修正してるのがちょっと面白い。
0235デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z)
2016/12/23(金) 20:09:49.80ID:tydkaaKw0> という間違いを
勝手に間違いにするなよ w
そもそもそういう風に修正するなら
char name[] = "abc";
の方がいいと思うぞ
0236デフォルトの名無しさん (ワッチョイ 03e7-zpPG)
2016/12/23(金) 20:28:16.26ID:OyCrFhmq0直後にprintfで%s使ってる以上、文字列として扱わないかもしれないとかいう逃げ道もないし
まさにNULL終端を理解してないのがやらかす典型以外の何物でもない
0237デフォルトの名無しさん (ワッチョイ df17-g1cW)
2016/12/23(金) 20:33:12.35ID:kORjsFtN0#pragma自体がコンパイラ依存の移植性が無いものなんだが
0238デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z)
2016/12/23(金) 20:48:02.31ID:tydkaaKw0>>223 が何をやりたかったのかは不明だが
> name[0] = '\0';
ってやってるから規格上間違いなんて無いんだが?
0239デフォルトの名無しさん (ワッチョイ 0f9b-uRrA)
2016/12/23(金) 21:35:50.37ID:XErTRk4H0" bc"と表示させたい場合は問題になるからね
説明を端折ったのは悪かった
0240デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z)
2016/12/23(金) 21:38:34.15ID:tydkaaKw0> " bc"と表示させたい場合は
だからそんな仮定を勝手に置いて語るなよ
って話
0241デフォルトの名無しさん (ワッチョイ df17-g1cW)
2016/12/23(金) 22:15:09.83ID:kORjsFtN0printf("%s", name + 1);
0242デフォルトの名無しさん (アウアウカー Sa5f-GvIT)
2016/12/23(金) 22:50:58.33ID:2lE868uqa精度指定で出力を2byteに制限すれば、問題にならないけど?
0243デフォルトの名無しさん (ワッチョイ f742-g1cW)
2016/12/23(金) 22:56:31.22ID:N7+vTzlD00244デフォルトの名無しさん (ワッチョイ 377b-3tOZ)
2016/12/23(金) 23:38:23.33ID:kZ6vwWWk0バカにはわからないようだが、初期化するにはそのための初期化データが必須
その分オブジェクトが肥大する
0245デフォルトの名無しさん (ワッチョイ df17-g1cW)
2016/12/23(金) 23:51:06.24ID:kORjsFtN0もしかして、
指定した位置の文字を半角空白文字にとして表示したいんですが
の間違い???
だとしたらそもそもの質問が間違えてるのだから的を得ない解答が返ってきても仕方がない話
0246デフォルトの名無しさん (ワッチョイ df17-g1cW)
2016/12/23(金) 23:58:32.12ID:kORjsFtN0Cでは静的初期化でも動的初期化でも、変数にアクセスする際は必ず初期化するべし
0247デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)
2016/12/24(土) 00:04:06.50ID:13QAQt3w0実際にやってみろよ0で初期化を。
0248デフォルトの名無しさん (ワッチョイ 7f5b-agOw)
2016/12/24(土) 00:19:10.39ID:R0w0jZmS0無駄な処理
0249デフォルトの名無しさん (ワッチョイ df17-g1cW)
2016/12/24(土) 00:21:05.86ID:1i4c8FXF0しかしアクセス前には必ず初期化はすることグローバル変数でも
0250デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)
2016/12/24(土) 00:23:33.58ID:13QAQt3w0お前 ID:kZ6vwWWk0 ?
だったら主張変わってるけど?
0251デフォルトの名無しさん (ワッチョイ 7f5b-agOw)
2016/12/24(土) 00:25:21.25ID:R0w0jZmS00252デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)
2016/12/24(土) 00:28:57.07ID:13QAQt3w0じゃあ関係ない話横から突っ込まないでくれる?
0253デフォルトの名無しさん (ワッチョイ 7f5b-agOw)
2016/12/24(土) 00:32:14.62ID:R0w0jZmS0>>248
>>249
の話だ。 病院行ったが良いぞ
0254デフォルトの名無しさん (ワンミングク MM5f-DNID)
2016/12/24(土) 00:36:45.83ID:kPI05Gb3M0255デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)
2016/12/24(土) 00:43:03.01ID:13QAQt3w00256デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)
2016/12/24(土) 02:44:39.65ID:13QAQt3w0非ローカル変数に初期化書かないポリシーだというなら別にそれで構わん、
それが癖になってローカル変数で初期化忘れたとか、それを中途半端に真似した初心者とかが未定義動作踏もうが、それはお前の責任だ。
しかし、間違った理由、もしくはお前の環境ローカルの常識で書かない事を強制させるような事を言うのは止めろ。
0257デフォルトの名無しさん (ワッチョイ 0f3c-i5Qz)
2016/12/24(土) 05:25:54.05ID:HU8wPv9h0ループさせる文もおそらくうまくいかないと思われます
疑似言語をC言語化しようとしてるんですが
購入[K[.品番=対象[T].品番
という購入と対象という2つの異なる配列の配列品番や配列数量を
分岐させたり代入させたりしたいです
何かわかりづらくなりましたが要するにいくつも項目が並んでる表を操作したいわけです
疑似言語をC言語化すること自体無理なんでしょうか?
while(K>0,T<=taishougyousu){
if(sinaban[kounyu[K]]=sinaban[taishou[T]]){
};
suryou[taishou[T]]=suryou[kounyu[K]];
K=ptr[K];
T=T+1;
if(sinaban[kounyu[K]]<sinaban[taishou[T]])
K=ptr[K];
else
T=T+1;
}
0258デフォルトの名無しさん (ワッチョイ 633c-i5Qz)
2016/12/24(土) 05:33:12.41ID:y7L7nGQ60} が足りないとか ) が足りないとか ; が足りないとか そういう類のミス
http://codepad.org/R7TdNtU5
0259257 (ワッチョイ 0f3c-i5Qz)
2016/12/24(土) 06:07:13.20ID:HU8wPv9h0教えていただいた構文でも同じエラーが出るみたいなので
おそらくはwhileで論理積を使った2つの条件指定か
if(sinaban[kounyu[K]]=sinaban[taishou[T]]){
};
あたりの二重の[ ]が無理だと思われます
なのでかなり崩した構文を書かないと疑似言語をC言語化できないと考えます
0260デフォルトの名無しさん (ワッチョイ 633c-i5Qz)
2016/12/24(土) 06:20:49.37ID:y7L7nGQ60Cの文法学びなおしな
0261デフォルトの名無しさん (ワッチョイ 7bdc-aVNS)
2016/12/24(土) 07:32:09.82ID:0UyY/BKM0>>258 の言う通り、whileの直前の行で変数を宣言してて
そっちの行末に ; をつけ忘れたとかの定番パターンだと思う。
ところで while の条件 (K>0,T<=taishougyousu) だけど、
「Kが0より大きい、かつ、Tがtaishougyousu以下」という意図なら
カンマ演算子でなく論理積 && を使うべきところだね。
while (K>0 && T<=taishougyousu) ...
文法的にはエラーじゃないせいで見落としやすいかと、あえて指摘させてもらう。
0262デフォルトの名無しさん (ブーイモ MM3f-AvAH)
2016/12/24(土) 07:43:22.63ID:+wOpvYJrM意図が分からない
0263デフォルトの名無しさん (ワッチョイ 8f13-i5Qz)
2016/12/24(土) 07:44:23.26ID:XrRMaYjq0だから馬鹿にはわからない,といっているだろう?しつこいな
0264デフォルトの名無しさん (ブーイモ MM3f-AvAH)
2016/12/24(土) 08:04:35.38ID:+wOpvYJrM・規格では静的変数はゼロ初期化が保証されてる
・だが初期値を書いた方が品がよいとされる。組込など省略される場合もあるので
・まともなコンパイラなら0初期値入れても最適化するからコードは増えない
コンパイルしたコード見りゃわかるだろ
0265デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z)
2016/12/24(土) 08:52:08.40ID:dPbQS77J0みたいに無理矢理一行に納めたがる(しかもたぶん意図と違う)とか
> };
のような無駄な ; が入っていても平気な人にはCは向いてないと思う
0266デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)
2016/12/24(土) 09:11:12.49ID:13QAQt3w0ほんと馬鹿には解らないってご自分で証明してくれてありがとうございます
0267デフォルトの名無しさん (ワンミングク MM5f-DNID)
2016/12/24(土) 09:23:24.14ID:kPI05Gb3M0268デフォルトの名無しさん (ワッチョイ f719-8bDS)
2016/12/24(土) 10:08:41.97ID:RCbQY4X80C言語なら俺たちに聞け パート0001
ttp://echo.2ch.net/test/read.cgi/tech/1341648926/
0269デフォルトの名無しさん (ワッチョイ 13a5-PUH/)
2016/12/24(土) 11:29:52.52ID:Bp2kWppi00270デフォルトの名無しさん (ワッチョイ 8f13-i5Qz)
2016/12/24(土) 15:04:56.91ID:XrRMaYjq0うんわかる
オブジェクトコードまで視点が到達している人
規格には書かれていないことだと喝破できる人
さまざまだね
0271デフォルトの名無しさん (アウアウカー Sa4f-6FRj)
2016/12/24(土) 16:14:51.30ID:1LCBxinAa0272デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)
2016/12/24(土) 16:27:26.01ID:13QAQt3w00で初期化するかそれ以外の値で初期化するかでサイズは変わる。
バカには理解出来ないみたいだけど
0273デフォルトの名無しさん (ワッチョイ 837b-DNID)
2016/12/24(土) 16:28:07.97ID:DNE92dFu0DATAはリンク時に初期値が確定する。
VCだとデバッグビルドの時は0初期化されているが、リリース版で
保障されている訳ではない
ちなみにFE ED C0 DE は OS-9/680x0 がアプリケーションに
メモリを割り当てした時にパディングするパターン。
WINDOWSにも独自のパターンがあるので調べてちょ
COFFの資料
http://www.delorie.com/djgpp/doc/coff/scnhdr.html
0274デフォルトの名無しさん (ワッチョイ f742-g1cW)
2016/12/24(土) 16:42:54.82ID:n3Z74Q5b0グローバル変数って、0でするのと0以外でするので、オブジェクトサイズが変わるんですか?
サイズが変わるってことはsizeof使って分かりますか?
0275デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)
2016/12/24(土) 16:48:29.77ID:13QAQt3w0流れからオブジェクトサイズというのはオブジェクトファイルのサイズの事を差してると解釈して言ったんだが(それ以外の話は出てきてない)お前は多分違う解釈してる。
オブジェクトファイルのサイズは生成されたコードのファイルのサイズ見れば解る
0276デフォルトの名無しさん (ワッチョイ 6b7b-zpPG)
2016/12/24(土) 16:58:36.50ID:13QAQt3w0Cの規格
5.1.2 Execution environments
All objects with static storage duration shall be initialized (set to their
initial values) before program startup.
初期値で初期化されることが規格で保証されてんの。
0277デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z)
2016/12/24(土) 17:25:34.99ID:dPbQS77J0変わるかどうかは処理系やコンパイルオプションによる
0278デフォルトの名無しさん (アウアウカー Sa5f-GvIT)
2016/12/24(土) 17:45:51.34ID:AF3lgZMka翻訳単位が,ある識別子に対する仮定義を一つ以上含み,かつその識別子に対する外部定義を含まない場合,その翻訳単位に,翻訳単位の終わりの時点での合成型,及び 0 に等しい初期化子をもったその識別子のファイル有効範囲の宣言がある場合と同じ規則で動作する。
0で初期化するのと同じ規則で動作する、以外に規定はない。
仮定義を持たないために0でも必ず初期化するっていうのは、間違ってないと思う。
0279257 (ワッチョイ 0f3c-i5Qz)
2016/12/25(日) 03:22:34.47ID:2jcHOLGG0かなり時間がかかりましたが二重の[]でもエラーはなくなりました
>>261
{ と }の位置がおかしかったですね。あと最初の#で始まる関数の宣言が
おかしかったのとintで始まる配列の宣言がかなり足りなかったですね
&&は確かにその通りでカンマだと後者の条件を優先するループになるのかな
>>262
ifので条件がNOの方に分岐したところにまたifで分岐を作ろうとしたんですけど
あまり上手くいってません
>>265
いったい学生の頃をどこまで思い出せばいいのか。全部思い出すわけにはいかないし
C言語はほどほどにしておこうと思っています
0280デフォルトの名無しさん (ワッチョイ 0f7b-Ao4e)
2016/12/25(日) 10:17:44.11ID:A+32p0u300281デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)
2016/12/25(日) 10:18:09.86ID:UjprWodd0したいならすれば?
0282デフォルトの名無しさん (ワッチョイ 837b-DNID)
2016/12/25(日) 12:14:17.88ID:6QEq7FnE00283デフォルトの名無しさん (アウアウカー Sa5f-GvIT)
2016/12/25(日) 12:20:44.64ID:/KLlwacta規格の話をするのに処理系の実装は関係ないからな
常に一致するとまで言うつもりはないし、サイズの変わる処理系の存在も否定しない
個人的には、数十バイトを気にするような開発してないからどうでも良いわ
0284デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)
2016/12/25(日) 12:21:33.70ID:UjprWodd0バカには出来ないだろうけど。
0285デフォルトの名無しさん (ワッチョイ d37b-jVSv)
2016/12/25(日) 12:40:31.64ID:/8TRU5/W0疑似コードのほうを晒すとすんなり回答が得られると思うよ
0286デフォルトの名無しさん (ワッチョイ b719-tuBs)
2016/12/25(日) 21:35:19.39ID:JV5w786K0モジュールAの処理の中でモジュールBの関数(当該データを引数として実行する関数)を実装する(実装1)のと、
モジュールBの処理の中でモジュールAの関数(当該データをポインタで渡す関数)を実際する(実装2)のとで、
メリデメがあるものでしょうか?
0287デフォルトの名無しさん (ワッチョイ 837b-DNID)
2016/12/25(日) 21:43:47.33ID:6QEq7FnE08086のLモデルならセグメントオーバーライドのペナルティーも
発生するな
0288デフォルトの名無しさん (ワッチョイ b719-tuBs)
2016/12/25(日) 21:49:52.41ID:JV5w786K0すみません、理解できなかったのでもう少し詳細まで教えて頂けると助かります、、
対象としているシステムは組み込み系ですがx86系の話でも構いません
0289デフォルトの名無しさん (ワッチョイ 837b-DNID)
2016/12/25(日) 23:07:36.56ID:6QEq7FnE016ビット幅固定命令なので、32bitの値をイミディエイトでは生成
出来ないのでどこかに置く。置いた場所が±255以内になければ更にオーバーヘッドがかかる。実行時に邪魔になるので余分なjumpも入る。
ポインタで渡せばコストは想定可能。こちらの方が軽い場合が多い。
0290デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z)
2016/12/26(月) 00:28:50.33ID:8ctcDGWr0モジュールって言うのが関数なのかなんなのかよくわからん
> モジュールAからモジュールBにデータ(変数値)を引き渡す際に
と言うのは A から B を呼び出してるように思うから
> モジュールAの処理の中でモジュールBの関数(当該データを引数として実行する関数)を実装する(実装1)のと
は理解できるけど
> モジュールBの処理の中でモジュールAの関数(当該データをポインタで渡す関数)を実際する(実装2)のとで
はどう言うことなのかよくわからん
0291デフォルトの名無しさん (ワッチョイ ef9f-h9rX)
2016/12/26(月) 01:04:31.98ID:9Yo0yJt100292デフォルトの名無しさん (ブーイモ MM3f-AvAH)
2016/12/26(月) 01:34:55.27ID:elmy+i1AMAxx(){
Bxx(data);
}
案2
Bxx(){
data = Axx();
}
ってことじゃねーのかな?
正直好きにしろとしか
0293デフォルトの名無しさん (ワッチョイ 6f68-YPDL)
2016/12/26(月) 10:50:12.71ID:+6Dna25w0Aに実装する場合はAがB依存になる
Bに実装する場合はBがA依存
Aが汎用的なモジュールならAに実装はしないかな俺なら
0294デフォルトの名無しさん (ワッチョイ df17-g1cW)
2016/12/26(月) 11:02:36.83ID:xO25f93t0密結合だと後々の変更に耐えられなくなる
0295デフォルトの名無しさん (ワッチョイ 13a5-PUH/)
2016/12/26(月) 22:41:47.74ID:xttRzHTo00296デフォルトの名無しさん (ワッチョイ a74e-qjDb)
2016/12/26(月) 23:38:50.01ID:i5XrEMUf0Axx(){
Bxx(data);
}
案2
Bxx(){
Axx(&data);
}
って言ってるように読めるのだが違う気もする・・
0297デフォルトの名無しさん (ワッチョイ 6f68-YPDL)
2016/12/27(火) 01:41:47.52ID:FYrmtqZh0http://ideone.com/1Q9xPZ
やはりモジュール間の依存方向の違いぐらいじゃまいか?
0298257 (ワッチョイ 0f3c-i5Qz)
2016/12/27(火) 05:09:12.95ID:32lhYaDn0一度目のelseつまり一度目の分岐でNOに行く部分が上手くいってません
「elseの位置が誤っている」とエラーが出てしまいます
二度目のelseは上手く機能したのになぜでしょうか
while(K>0 && T<=taishougyousu){
if(sinaban[kounyu[K]]=taishousinaban[taishou[T]])
taishousuryou[taishou[T]]=suryou[kounyu[K]];
K=ptr[K];
T=T+1;
else
if(sinaban[kounyu[K]]<taishousinaban[taishou[T]])
K=ptr[K];
else
T=T+1;
}
>>285
疑似言語だと
■(K>0)and(T<=対象行数
|▲購入[K].品番=対象[T].品番
||・対象[T].数量←購入[K].数量
||・K←購入[K].ptr
||・T←T+1
|── ←この分岐のNOを現わすelseでエラー
||▲購入[K].品番=対象[T].品番
|||・K←購入[K].ptr
||──
|||・T←T+1
||▼
|▼
■
0300デフォルトの名無しさん (ワッチョイ 0f3c-i5Qz)
2016/12/27(火) 06:29:20.16ID:32lhYaDn0しかしelseの分岐が無視されifで指定した条件を満たしてなくても
条件がyesの方の文が実行されます。その後はwhileのループに戻ります
elseとelse ifどっちも試してみましたがどうしても条件がNOの文に飛んでくれません
ググってもC言語の本を読んでも分かりません。諦めた方がいいでしょうか
0301デフォルトの名無しさん (ワッチョイ 0f9b-uRrA)
2016/12/27(火) 06:35:04.84ID:Z7RkHQtm00302片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK6f-t2A3)
2016/12/27(火) 06:36:09.87ID:GaV38g+FK代入になってる。=と==は間違いやすいから気をつけよう。
0303デフォルトの名無しさん (ワッチョイ 2703-T2iK)
2016/12/27(火) 06:37:09.34ID:gKIG9FI000304デフォルトの名無しさん (ワッチョイ 0f3c-i5Qz)
2016/12/27(火) 06:44:49.79ID:32lhYaDn01行にこんなに時間がかかるなんてC言語は難しいですね
0305デフォルトの名無しさん (ドコグロ MMdf-BQyC)
2016/12/27(火) 08:19:35.62ID:CVPZfFKkMなぜにわざわざ自分からめんどくさい言語を選んで文句言うかなぁ...
0306デフォルトの名無しさん (ワッチョイ 374f-i5Qz)
2016/12/27(火) 09:02:08.38ID:JGKzPuHu00307デフォルトの名無しさん (ワッチョイ 0f9b-uRrA)
2016/12/27(火) 09:29:18.27ID:Z7RkHQtm0ifで代入は教科書の定番になるくらいのミスだし
0308デフォルトの名無しさん (オッペケ Sr6f-vX8b)
2016/12/27(火) 12:11:00.19ID:GZlBMBhCrワーニング出るから、普通、気づくだろうにな。
0309デフォルトの名無しさん (アウアウカー Sa3f-T2iK)
2016/12/27(火) 12:13:48.19ID:z54J35DFa=は比較のときに使うかもとは思わなかったのか
「やっべー=は代入に使っちまったよ。修正めんどいから比較は==でいいか」的な軽さを感じる
0310デフォルトの名無しさん (ワッチョイ f719-8bDS)
2016/12/27(火) 12:34:08.28ID:ROG9Kex30Pascalは:=が代入らしい。
0311デフォルトの名無しさん (ワントンキン MM3f-5BdW)
2016/12/27(火) 12:34:45.48ID:AOY0qlPhMおれCから入ったからなんの違和感もないけど
0312デフォルトの名無しさん (ワントンキン MM3f-5BdW)
2016/12/27(火) 12:37:18.75ID:AOY0qlPhM0313デフォルトの名無しさん (ブーイモ MMaf-XloP)
2016/12/27(火) 12:40:30.23ID:ubQxao/9Mjava も js も perl も C# やろ。
0314デフォルトの名無しさん (ドコグロ MM7f-l7jk)
2016/12/27(火) 12:44:41.00ID:oa8lMfe3Mその点はPASCALの:=とかBASICのLETが省略されてるという文法の方が分かりやすい
でも=と==を間違える人なんていないし、たいした問題じゃないな
0315デフォルトの名無しさん (ワッチョイ 9f7b-ecDe)
2016/12/27(火) 12:46:42.55ID:jF9jTMAt0https://ja.wikipedia.org/wiki/%E9%96%A2%E4%BF%82%E6%BC%94%E7%AE%97%E5%AD%90
0316デフォルトの名無しさん (ドコグロ MMdf-BQyC)
2016/12/27(火) 12:56:13.43ID:CVPZfFKkM慣れで解決するならコーディングミスの半分はなくなると思う
0317デフォルトの名無しさん (JP 0Hbf-i5Qz)
2016/12/27(火) 13:43:58.56ID:gmRiJ4C2H#include <stdio.h>しか使ってはいけない・・・
0318デフォルトの名無しさん (ワッチョイ 374f-i5Qz)
2016/12/27(火) 14:40:15.86ID:JGKzPuHu0{
0319デフォルトの名無しさん (ワントンキン MM3f-5BdW)
2016/12/27(火) 14:41:39.94ID:AOY0qlPhMforで回してstrncmpとか?
0320片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK6f-t2A3)
2016/12/27(火) 15:27:16.37ID:GaV38g+FK文字列を配列のように一文字ずつスキャンして、'A'があれば出力する。
0321デフォルトの名無しさん (ワッチョイ 374f-i5Qz)
2016/12/27(火) 15:33:57.69ID:JGKzPuHu00322デフォルトの名無しさん (ガラプー KKdf-t2A3)
2016/12/27(火) 16:03:47.52ID:GaV38g+FK0323デフォルトの名無しさん (ワッチョイ df17-g1cW)
2016/12/27(火) 17:00:28.00ID:LWrh44QV0いきなり書きつらって動かないとか
初歩中の初歩の初心者以下の質問ばかり
リファレンス見ろよで終わる話
0324デフォルトの名無しさん (ワッチョイ 675b-ny8H)
2016/12/27(火) 17:06:13.73ID:W9hRCVzT00325デフォルトの名無しさん (ブーイモ MM3f-rd4d)
2016/12/27(火) 17:28:08.19ID:xkC8dUFKMヒント
> x <- c("おす","メス","メス","おす")
> x[which(x == "おす")] <- 0
> x
[1] "0" "メス" "メス" "0"
0326デフォルトの名無しさん (ワッチョイ cfc2-97H3)
2016/12/27(火) 18:20:51.97ID:5xUcSPz40どうやればいいんですか?
OSはWindowsです。
0327デフォルトの名無しさん (ワッチョイ 0fc1-g1cW)
2016/12/27(火) 19:45:32.61ID:QDHa6Y2K0JISやISOに登録されてるの?
0328デフォルトの名無しさん (アウアウカー Sa5f-6FRj)
2016/12/27(火) 20:46:01.24ID:Hi68lG1mahttps://ideone.com/o1UT3m
コマンドプロンプトに出力するなら設定変えなきゃいけないようだけど
0329デフォルトの名無しさん (ワッチョイ ef9f-h9rX)
2016/12/27(火) 20:51:52.42ID:HWF0hvOB00330デフォルトの名無しさん (ブーイモ MM3f-AvAH)
2016/12/27(火) 21:03:02.94ID:Nm37omeWM0331デフォルトの名無しさん (ドコグロ MM3f-pGfi)
2016/12/27(火) 22:03:40.42ID:G3hy1KS4MAのみを抜き出したら、結果はAだろ。
0332デフォルトの名無しさん (ワッチョイ 7f5b-agOw)
2016/12/27(火) 22:35:32.12ID:KYIhPrn60↓
BKYROU
にするって事じゃねえのか。
0333デフォルトの名無しさん (ワッチョイ df17-g1cW)
2016/12/27(火) 22:53:06.12ID:LWrh44QV0int main(int argc, char **argv) {
char src[10] = "BAKAYAROU";
char dst[10];
char *p_src, *p_dst;
p_src = src;
p_dst = dst;
while (*p_src != '\0') {
if (*p_src != 'A') {
*p_dst++ = *p_src;
}
p_src++;
}
puts(dst);
return 0;
}
0334デフォルトの名無しさん (ワッチョイ df17-g1cW)
2016/12/27(火) 22:57:33.74ID:LWrh44QV0puts()の前に「*p_dst = '\0';」を入れて下さい。
0335デフォルトの名無しさん (ワッチョイ d37b-jVSv)
2016/12/27(火) 23:11:47.17ID:dJApz5DA0最短の文字列は\0のみ、つまり1文字は必ずあるのだよ
当然終端されてない不完全な文字列は除く
0336デフォルトの名無しさん (ワッチョイ df17-g1cW)
2016/12/27(火) 23:41:53.66ID:LWrh44QV0#include <stdio.h>
int main(int argc, char **argv) {
char src[10] = "BAKAYAROU";
char dst[10];
char *p_src, *p_dst;
p_src = src;
p_dst = dst;
do {
if (*p_src != 'A') {
*p_dst++ = *p_src;
}
} while (*p_src++ != '\0');
puts(dst);
return 0;
}
0337デフォルトの名無しさん (ドコグロ MM1f-BQyC)
2016/12/28(水) 07:17:18.44ID:taDaNIJQMそれなら 'A' を抜き取るとか取り去るって言ってほしいな
0338デフォルトの名無しさん (ワッチョイ 233b-pGfi)
2016/12/28(水) 08:09:06.68ID:JN8lj6g40別の文字列も試したい!
ってか、I/O は別にするんじゃないの?
0339デフォルトの名無しさん (ワッチョイ 374f-i5Qz)
2016/12/28(水) 08:27:04.15ID:Dwxz1rif0int main(int argc, char **argv) {
int ch;
while ((ch = getchar()) != EOF) { if (ch != 'A') putchar(ch); }
return 0;
}
ファイルけの入出力はリダイレクトで
0340デフォルトの名無しさん (ワッチョイ 7bdc-aVNS)
2016/12/28(水) 17:05:52.51ID:Py23AHJA00341デフォルトの名無しさん (ワッチョイ df17-g1cW)
2016/12/28(水) 22:26:32.56ID:6NcUzOVy00342デフォルトの名無しさん (ワッチョイ de5b-BD8y)
2016/12/29(木) 07:47:06.97ID:agYvXZ6g0{
double tmp = 1.0 while(n-->0) tmp *=x; retrun tmp;}
初心者で申し訳ないのですが教科書に載ってるこれがなぜちゃんと2乗で帰ってくるのかわかりません。 これだとwhile文が一回分少なくなりません? n=2,x=3だったらtmp=3でかえってくるきがするのですが・・・
0343デフォルトの名無しさん (ワッチョイ 2b19-Eko0)
2016/12/29(木) 07:54:55.61ID:UuSU3MmP0比較後にnが-1されるから正しいよ。
0344片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK5b-lF1b)
2016/12/29(木) 07:55:37.60ID:4SBHJX0YKn--は、--nとは違って、nを返し、副作用としてnを1だけ減少させる。
n--の評価はnだが、式を評価した後に減算する。
0345デフォルトの名無しさん (ワッチョイ de5b-BD8y)
2016/12/29(木) 08:01:20.59ID:agYvXZ6g0あー前置後置ってヤツですね!
わかりましたありがとうございます
0346デフォルトの名無しさん (ワッチョイ af22-VbmQ)
2016/12/29(木) 08:16:33.70ID:uZde1oJB00347デフォルトの名無しさん (スププ Sdaa-AfM2)
2016/12/29(木) 18:15:30.77ID:McFsgUodd全てint型のみ使って表現する方法を教えて下さい
もはや算数の質問かも
0348デフォルトの名無しさん (ワッチョイ 4613-Sa8B)
2016/12/29(木) 18:27:21.91ID:jmDxh3ik0(a * 100) / b
(a * 1000) / b
(a * 10000) / b
など好きな桁だけ
0349デフォルトの名無しさん (スププ Sdaa-AfM2)
2016/12/29(木) 18:38:33.33ID:McFsgUoddありがとう
そうか先に乗算したらいいのか
先行き不安
0350デフォルトの名無しさん (ワッチョイ 4613-Sa8B)
2016/12/29(木) 18:57:20.07ID:jmDxh3ik0a が1000万とかおおきな数字だと桁あふれがあるかもしれないのは,要注意だよ
0351デフォルトの名無しさん (ワッチョイ 8a5b-N5TX)
2016/12/29(木) 19:35:14.97ID:L0//uJAz0んでそんなのに答えんなよ。
0352デフォルトの名無しさん (ワッチョイ 4ac2-iiJY)
2016/12/29(木) 21:35:34.12ID:5z3LEr/z00353デフォルトの名無しさん (ワッチョイ 0a17-4Ie9)
2016/12/31(土) 00:48:00.41ID:d3m9z2RM00354デフォルトの名無しさん (ワッチョイ 8a3c-vnn7)
2016/12/31(土) 08:11:57.75ID:RP5GqFRc00355デフォルトの名無しさん (ワッチョイ 8a5b-N5TX)
2016/12/31(土) 18:06:01.48ID:1NxzN7Kr0Cの偏屈委員会どもは死んでしまえ
0356デフォルトの名無しさん (アウアウカー Sa6b-vNeW)
2016/12/31(土) 20:17:13.89ID:PqxctD7va0357デフォルトの名無しさん (ワッチョイ 9ba1-pjmj)
2017/01/06(金) 16:56:13.81ID:dF2ZN8YS00358デフォルトの名無しさん (ペラペラ SD3f-/Nb9)
2017/01/06(金) 21:52:48.98ID:z/rf0TmkD0359デフォルトの名無しさん (ワッチョイ 5fab-HvS5)
2017/01/07(土) 17:26:15.98ID:4AuueMBh0この書き方安全?
0361デフォルトの名無しさん (ワッチョイ ab7b-RU+3)
2017/01/07(土) 17:48:24.54ID:2i81Owhj0第一引数に渡すポインタがNULLのとき"のみ"malloc()と同等の動作となる
0362デフォルトの名無しさん (ワッチョイ df17-pn3f)
2017/01/08(日) 01:19:27.15ID:LDH1W2Fk0可読性に疑問符はあるけど安全か安全でないかといえば安全
0363デフォルトの名無しさん (ワッチョイ bb7b-XpjH)
2017/01/08(日) 02:12:57.97ID:LTVOs92T00364デフォルトの名無しさん (ワッチョイ 7b3c-HvS5)
2017/01/08(日) 03:30:55.66ID:Nqw0FnK600365デフォルトの名無しさん (ワッチョイ df3c-JQu6)
2017/01/08(日) 13:14:25.44ID:C9GVPqMv0結構単純な話みたいよ
http://www.beedub.com/Sprite093/src/lib/c/stdlib/realloc.c
サイズ拡張時の malloc( ) が NULL 返した時の処理がバグってるけど
0366デフォルトの名無しさん (アウアウカー Sa3f-KJco)
2017/01/08(日) 13:40:28.10ID:l5OOm04caglibcのソースでも読めば?
単純な話じゃないから
0367デフォルトの名無しさん (ワッチョイ df3c-JQu6)
2017/01/08(日) 14:27:25.28ID:C9GVPqMv0ソースはごちゃごちゃしてるけどやってることはそう複雑じゃないでしょ
http://osxr.org:8080/glibc/source/malloc/malloc.c
0368デフォルトの名無しさん (アウアウカー Sa3f-KJco)
2017/01/08(日) 14:51:20.91ID:l5OOm04caここで言う単純な話って、>>362だぞ
アルゴリズムが複雑か否かは問題にしていない
実際は後ろのchunkが空いているかとかで変わって、>>364の通り同じアドレスが返ることもある
0369デフォルトの名無しさん (ワッチョイ df9f-c1lT)
2017/01/08(日) 14:56:25.79ID:p/kSxu/t0最悪の場合はmallocしてmemcpyしてfreeなのは当然として
glibcだと肝は_int_realloc()だけどパッと見ではさっぱり分からん
複雑じゃないならちょっと解説頼む
0370デフォルトの名無しさん (ワッチョイ df3c-JQu6)
2017/01/08(日) 15:04:37.73ID:C9GVPqMv0> アルゴリズムが複雑か否かは問題にしていない
いったい何を問題にしてるんだろう...
> 実際は後ろのchunkが空いているかとかで変わって、>>364の通り同じアドレスが返ることもある
そりゃそう言う実装もあるわな
でもそれってそんな複雑な話か?
0371デフォルトの名無しさん (ワッチョイ 7b3c-HvS5)
2017/01/08(日) 15:07:42.34ID:Nqw0FnK60100% malloc memcpy free で代用できるのなら realloc は不要ってことに
0372デフォルトの名無しさん (アウアウカー Sa3f-KJco)
2017/01/08(日) 15:25:56.83ID:4o94KzMpa>>362の言う通りの実装かどうかの問題
少なくとも、glibcは違う
0373デフォルトの名無しさん (ワッチョイ df3c-JQu6)
2017/01/08(日) 15:32:07.85ID:C9GVPqMv0・要求サイズ小さければサイズ変更だけ
・そのまま拡張できるなら拡張する
・次のチャンクを使って拡張できるなら次のチャンクと統合
・だめなら領域確保してコピーして(元の領域を)解放
中学程度の英語力 + Google翻訳 でコメント拾い読みすればわかるとと思う
特殊ケースでコピーを避けたりサイズによってコピー方法変えたりしてるからちょっと読み辛い所はあるけど
0374デフォルトの名無しさん (ワッチョイ df9f-c1lT)
2017/01/08(日) 16:42:09.60ID:p/kSxu/t0俺も似たような見解だけど、それだと>>365の指摘は見当違い(またはアスペ)で
>>372が正しいようだ
0375デフォルトの名無しさん (ワッチョイ df5b-O2rp)
2017/01/08(日) 19:45:21.14ID:M5lCKC460システムコールを呼ぶんだから、OSに依存するだろう。
0376デフォルトの名無しさん (ワッチョイ bb7b-XpjH)
2017/01/08(日) 19:59:06.17ID:LTVOs92T0こいつ最高のアホ
0377デフォルトの名無しさん (ワッチョイ 5fc0-r3T7)
2017/01/09(月) 07:01:50.03ID:OyKUGSou00378デフォルトの名無しさん (ワッチョイ 1b79-IbiL)
2017/01/09(月) 19:20:06.54ID:TY73MQez0C言語をJavaに置き換えたいのですが
●C言語
kiriwake[p_kiriwake]=TOITU;kiriwake[p_kiriwake+1] =i,p_kiriwake+=2;
これをJavaに書き換えると次のような感じでいいのですか?
セミコロンとカンマの使い分けの意味がわからんのですが、、、
●Java
kiriwake[p_kiriwake]=Mentsu.TOITU.getInt();
kiriwake[p_kiriwake+1] =i;
p_kiriwake+=2;
あと、C言語で !tehai[i] みたいな配列の要素否定(配列はint型)
これって 配列の要素の値が 0だったらtrueって意味でよいのでしょうか?
0379デフォルトの名無しさん (ブーイモ MMff-aasi)
2017/01/09(月) 19:31:26.95ID:ZrysDj50M0380デフォルトの名無しさん (ワッチョイ 1b79-IbiL)
2017/01/09(月) 19:37:45.93ID:TY73MQez0ありがとうございます!
int tehai[1]={0}だったら
!tehai[1] はtrueってことでよいですよね?
すみません、カンマとセミコロンの使い分けについても知りたいのですが。。。
0381380 (ワッチョイ 1b79-IbiL)
2017/01/09(月) 19:41:24.91ID:TY73MQez0int tehai[1]={0}だったら
!tehai[0] はtrueってことでよいですよね?
0382デフォルトの名無しさん (ワッチョイ 7b3c-HvS5)
2017/01/09(月) 19:44:30.67ID:B6Fh/YAP0むしろ何でカンマで記述したんだろう?と疑問に思うところ
0383デフォルトの名無しさん (ワッチョイ 1b79-IbiL)
2017/01/09(月) 19:49:25.51ID:TY73MQez0ありがとうございます!!!
Javaしかやったことなくて
疑問に思ってました。。。。
参考にさせてもらってるので文句いえないんですが。
0384デフォルトの名無しさん (ワッチョイ 7b3c-HvS5)
2017/01/09(月) 19:52:46.44ID:B6Fh/YAP0片側の言語しかやってなくて、別言語を移植するのはうまい手ではない とだけ
0385デフォルトの名無しさん (ワッチョイ 1b79-IbiL)
2017/01/09(月) 19:53:41.53ID:TY73MQez0アルゴリズムおえてないっす。。。。(´・ω・`)ショボーン
0386デフォルトの名無しさん (ワッチョイ 1f3d-IbiL)
2017/01/09(月) 23:32:02.05ID:3plbifW70p_kiriwakeとかで検索すると、すでにjava用があるみたいだが(完成しているかどうかは知らんが)、
そっちは調査済み?
0387デフォルトの名無しさん (ワッチョイ 1b79-IbiL)
2017/01/10(火) 01:21:20.69ID:TQQvtKe/0ついさっき気づきました。
ちゃんと見てなくてすみません><
ありがとうございます!
0388デフォルトの名無しさん (ワッチョイ cf48-FA8G)
2017/01/11(水) 00:33:31.51ID:yCTW6NdS00389デフォルトの名無しさん (ワッチョイ cf48-FA8G)
2017/01/11(水) 00:43:26.06ID:yCTW6NdS00390デフォルトの名無しさん (ワッチョイ cf48-FA8G)
2017/01/11(水) 02:07:55.01ID:yCTW6NdS0�@sjisのテキストファイルfgets
�Aunicodeのテキストファイルfgets
両方の文字列結合してunicodeのテキストへ出力したいだけなんだけど、なかなかハードル高そう
0391デフォルトの名無しさん (ワッチョイ cf48-FA8G)
2017/01/11(水) 02:28:22.06ID:yCTW6NdS0こっちのほうが簡単かな?
明日試してみよ
0392デフォルトの名無しさん (ワッチョイ 0f7b-MPfw)
2017/01/11(水) 04:59:56.93ID:s2WqCPuy0普通はそのまま、多言語対応の、String#encode を使うけど、
日本語なら、NKF か、NKFのラッパーである、Kconv を使うこともある
0393デフォルトの名無しさん (ワッチョイ df17-pn3f)
2017/01/11(水) 06:34:38.07ID:9AYGk8zp0unicodeがUTF-16という意味ならば、fprintf()ではなくfwprintf()を使う必要がある。
非SJIS文字をコンソールウィンドウに表示したいという意味ならば、SetConsoleOutputCP()を使う必要がある。
0394デフォルトの名無しさん (ワッチョイ bb7b-XpjH)
2017/01/11(水) 08:41:45.28ID:7JGhXUMg0Ruby厨ってゴキブリのようにどこにでも現れるな 本当にウザい
0395デフォルトの名無しさん (JP 0Hff-HvS5)
2017/01/11(水) 09:45:29.30ID:Kc9qpi7VH入力例
ouninnoran
出力例
ounin
0396デフォルトの名無しさん (ブーイモ MMff-HTrg)
2017/01/11(水) 10:50:42.14ID:YIxHFj66Mそれは、取り出すじゃなくて、取り除くだろ
0397デフォルトの名無しさん (JP 0H3f-HCiS)
2017/01/11(水) 11:43:13.25ID:9NELrAZMHまず確認として、逆に付け足す方はできるのん?
それより数段難しいけど
0398デフォルトの名無しさん (ワッチョイ ab4e-JoNk)
2017/01/11(水) 12:13:12.65ID:TbwwsfFk00399デフォルトの名無しさん (JP 0Hff-HvS5)
2017/01/11(水) 12:21:43.61ID:SaAlt4gYHif(!strcmp("M", s))
printf("Hi, Mr. %s", name);
else
printf("Hi, Ms. %s", name);
どこが間違ってる?
0400デフォルトの名無しさん (ワッチョイ 0f4f-HvS5)
2017/01/11(水) 12:31:53.61ID:BpdW2SgI0s の型は
char ならば strcmp で比較することがおかしい
char の配列ならば %c で受けるのがおかしい
そして scanf の第二引数は &name ではなく name
0401デフォルトの名無しさん (JP 0H3f-HCiS)
2017/01/11(水) 14:00:06.55ID:9NELrAZMHname, s の宣言をどこでどうやってるかまず明示
0402デフォルトの名無しさん (ワントンキン MMff-FA8G)
2017/01/11(水) 16:57:22.11ID:/Ass4XCcMありがと
使いたいのはutf8でした
もう少し調べてみます
0403デフォルトの名無しさん (ワッチョイ c648-3wWY)
2017/01/12(木) 13:25:08.18ID:N1lQGCCN0fopenでABをオープン
_wfopenのパラメータにUTF-8を指定してファイルCをオープンしてすぐクローズ(空ファイル作成)
fopenでCをオープン
fgetで読んだABの中身をfprintfでCに出力
これでやりたかったutf8出力はできたけど
無理矢理すぎて残念な感じ
こんなソース人には見せたくないなw
0404デフォルトの名無しさん (ワッチョイ c648-3wWY)
2017/01/12(木) 13:29:55.13ID:N1lQGCCN00405デフォルトの名無しさん (JP 0H8b-CSNb)
2017/01/12(木) 13:39:48.09ID:xegpw56ZHもっともらしくドキュメント書けばおーけーよ
0406デフォルトの名無しさん (ワッチョイ c648-3wWY)
2017/01/12(木) 13:44:40.28ID:N1lQGCCN00407デフォルトの名無しさん (JP 0Hee-0Plu)
2017/01/12(木) 15:04:44.33ID:Yxj3ejPrHutf8を読んでutf8で書くだけなら_wfopenとか必要なくね
普通にfopenだけで動かんの?
0408デフォルトの名無しさん (ワッチョイ c648-3wWY)
2017/01/12(木) 16:45:42.06ID:N1lQGCCN00409デフォルトの名無しさん (ワッチョイ ff53-BvkP)
2017/01/12(木) 17:44:41.69ID:TSKFHmJO0バイナリー扱いでファイルcに出力できないのはbom関係から?
0410デフォルトの名無しさん (ドコグロ MM0a-f8hU)
2017/01/12(木) 18:01:15.85ID:+/2k3owKM0411デフォルトの名無しさん (ワッチョイ 2f3c-dHfL)
2017/01/12(木) 18:15:42.76ID:wUE0uj5c0>>403 では utf8のファイルA と utf8のファイルB を utf8のまま連結出力したい
0412デフォルトの名無しさん (ワッチョイ c648-3wWY)
2017/01/12(木) 18:48:56.52ID:N1lQGCCN00413デフォルトの名無しさん (アウアウカー Sa5f-lBuY)
2017/01/12(木) 18:51:37.14ID:yXBvqXfaaそれでsjis→ucs2?→utf8で変換出来るでしょ
コードをutf8にしたいなら、エディタで保存するときに文字コード選ぶか、c11なら文字列リテラルにu8つける
0414デフォルトの名無しさん (ワッチョイ c648-3wWY)
2017/01/12(木) 18:52:20.67ID:N1lQGCCN00415デフォルトの名無しさん (ワッチョイ c648-3wWY)
2017/01/12(木) 18:56:15.99ID:N1lQGCCN0二段階で変換するのか
ありがとー
0416デフォルトの名無しさん (ワッチョイ c648-3wWY)
2017/01/12(木) 18:58:51.15ID:N1lQGCCN0WideCharToMulteByte
でいけるみたいね
ちょっと試してみる
0417デフォルトの名無しさん (JP 0Hf2-dHfL)
2017/01/13(金) 10:59:17.59ID:A7lO7PxRHchar s;
scanf("%s", &s);
printf("Best in %s", s);
return 0;
}
ド素人です
どこが間違ってるの?
0418デフォルトの名無しさん (ワッチョイ 4f42-q48i)
2017/01/13(金) 11:05:29.60ID:XrLKGNVx0>char s;
この辺
0419デフォルトの名無しさん (ドコグロ MM0a-xe6k)
2017/01/13(金) 11:06:07.22ID:zsb+1uUaM0420デフォルトの名無しさん (ワッチョイ c3dc-0v0L)
2017/01/13(金) 11:18:43.84ID:Aw2MqPlk0標準入力から1文字だけ取って表示したいなら、2か所の %s は %c と書く。
標準入力から単語を1個取って表示したいなら
char s; → char s[1024];
scanf("%s", &s); → scanf("%s", s);
んで、プログラムを書いたときに期待した動作と、
実行したときの実際の動作の食い違いを報告すれば
次のヒントを示せると思うよ。
0421デフォルトの名無しさん (ワッチョイ 1f7b-cG99)
2017/01/13(金) 11:21:49.39ID:76Aeg2JY0> char s; → char s[1024];
特にこの辺
0422デフォルトの名無しさん (ワッチョイ b25b-QKPs)
2017/01/13(金) 12:29:47.17ID:KHQIWhB300423デフォルトの名無しさん (JP 0Hff-ws9s)
2017/01/13(金) 12:32:11.51ID:TdrVgO0QH>>421は害悪
0424420 (ワッチョイ c3dc-0v0L)
2017/01/13(金) 16:45:39.44ID:Aw2MqPlk0この段階でscanfの読み取り量の上限指定書式とか説明しきれないじゃない。
そういう意味での「とりあえず...」という前置き。
もちろん完璧な解説をしてくれるなら歓迎するよ。
0425デフォルトの名無しさん (ワッチョイ 1f7b-cG99)
2017/01/13(金) 17:35:31.50ID:76Aeg2JY0%1023s これを超初心者に教えるのは面倒
従ってscanfで文字列読み込むな!
が正しい解答
0426デフォルトの名無しさん (ワンミングク MMe2-3wWY)
2017/01/13(金) 17:45:39.99ID:5IEqjpCWM勉強中はべつにいいだろ
最初はこかして覚えるもんだ
0427デフォルトの名無しさん (ワッチョイ 1f7b-cG99)
2017/01/13(金) 17:54:35.78ID:76Aeg2JY01000回死ね
0428デフォルトの名無しさん (ワッチョイ 677b-j+ca)
2017/01/13(金) 18:01:09.72ID:530oYhD80最初から使うなというだけでは勉強にならないだろ
0429デフォルトの名無しさん (ワンミングク MMe2-dqLr)
2017/01/13(金) 18:07:58.33ID:kKg87s4oMそれで、char s[1024]; にしたらこけて覚えるか?
覚えないだろ、勉強中に1024以上入力する事なんてないだろうから。
そうやって「自分の動かす範囲では動いてる」で進むのが良いとは思わんね
0430デフォルトの名無しさん (ワッチョイ 1f85-y9rD)
2017/01/13(金) 18:12:45.77ID:hu5eqRYQ0C の標準関数は洗練されていない
0431デフォルトの名無しさん (ワッチョイ 677b-j+ca)
2017/01/13(金) 18:20:09.29ID:530oYhD80実際にscanfで文字列を扱う経験のなかから危険性も理解できるようになる(はず)
0432デフォルトの名無しさん (ワンミングク MMe2-dqLr)
2017/01/13(金) 18:28:57.36ID:kKg87s4oM知らないとバッファーに収まるように打ち切って格納してくれると思ってしまう可能性もあるだろ?(C++では実際そういう風に実装可能だし)
scanfで文字列取るのなんて実行時まで自分で面倒見ない限りどうやっても安全に使えないんだからその方法を教えること自体悪
0433デフォルトの名無しさん (ワッチョイ 2f3c-dHfL)
2017/01/13(金) 18:35:16.24ID:VUlDSfWl0最初のプログラミング言語がこれでの初心者
どっちが取り扱うにしろ文字列周辺は面倒だな
0434デフォルトの名無しさん (ワッチョイ f37b-aKms)
2017/01/13(金) 21:03:22.47ID:wdtBjSeo0printf()の対だから…なんて安易な考えでscanf()を使っているとしか思えないが
scanf系は元々csvとか帳簿みたいな固定長あるいは固定フォーマットのレコードを処理するために用意されたものだから
そういう「入力が既知のケース」ではとても便利なのでガンガン使っていいけど
何が来るかわからない一方通行の入力ストリームに対してはあまりに使いにくい
変換失敗しただけでも食べ残して次の入力になっちゃうから行儀が悪い
だから改行もちゃんと食べきるfgets()のほうがやり直しも含めて簡単なんだよな
0435デフォルトの名無しさん (ワッチョイ 7e13-dHfL)
2017/01/13(金) 21:10:12.65ID:nYJUER3p00436デフォルトの名無しさん (ワッチョイ 12cb-q48i)
2017/01/13(金) 21:44:57.26ID:3pfgPUNA00437デフォルトの名無しさん (JP 0H8b-CSNb)
2017/01/14(土) 14:22:47.29ID:Xw0trSpZH初心者に使わせるべきではない
0438デフォルトの名無しさん (ワッチョイ 4f42-q48i)
2017/01/14(土) 14:25:06.53ID:NOILgRtm00439デフォルトの名無しさん (ワッチョイ 4f19-YL17)
2017/01/14(土) 14:57:58.01ID:YpbmANTj0どこぞのパヨクじゃあるまいし。
0440デフォルトの名無しさん (ワッチョイ 1f7b-cG99)
2017/01/14(土) 15:05:14.99ID:8QfSwFFH0やってはいけない事を形式的に理解する
やってはいけない理由を理解する
前者の方が圧倒的に簡単でオレはそれをした
後者は必要だと思ってるお前がやれ
0441デフォルトの名無しさん (ワッチョイ 12cb-q48i)
2017/01/14(土) 19:18:27.21ID:FAvcV6GF00442デフォルトの名無しさん (ワッチョイ b25b-QKPs)
2017/01/14(土) 21:25:43.12ID:aI5T4zHh0scanfも間違った使い方をしなければ良いだけだ。
Cに関しては間違うやつが悪い。
0443デフォルトの名無しさん (ワッチョイ 1f76-L1LG)
2017/01/14(土) 22:06:39.99ID:nnhGfmGJ0いい言葉だ
0444デフォルトの名無しさん (JP 0H8b-CSNb)
2017/01/14(土) 22:47:19.07ID:Xw0trSpZH0445デフォルトの名無しさん (ワッチョイ 1f7b-cG99)
2017/01/14(土) 22:59:33.68ID:8QfSwFFH0口だけパヨクの>>439は逃亡か
0446デフォルトの名無しさん (ワッチョイ b23c-lGK7)
2017/01/15(日) 13:44:50.20ID:HYjV15pa0> 間違った使い方しか出来ないgetsなんてのもある
意味わからん
0447デフォルトの名無しさん (ワッチョイ 4f19-YL17)
2017/01/15(日) 14:16:13.20ID:2Jcq20M500448デフォルトの名無しさん (ワッチョイ 1f7b-cG99)
2017/01/15(日) 15:55:29.90ID:T6BZe6fz0頭悪いんじゃ無い?
0449デフォルトの名無しさん (ワッチョイ 3217-q48i)
2017/01/15(日) 16:04:27.74ID:6p/gvNbZ0B. 頭悪いヤツでも使えるようにしないヤツが悪い
いかにして上記のAとBで相反する主張を巧みに使いこなし他人に責任転嫁するかってのが処世術。
0450デフォルトの名無しさん (ドコグロ MM3e-lGK7)
2017/01/15(日) 16:23:27.09ID:YYhy4dGbMこういう論争はだいたい言い切る奴が頭悪いって結論だが w
0451デフォルトの名無しさん (ワッチョイ 1f7b-cG99)
2017/01/15(日) 16:43:00.41ID:T6BZe6fz0たった一行の
「間違った使い方しか出来ないgetsなんてのもある」
の意味がわからないのは頭が悪い可能性がとてつもなく高い
例外として日本語が不自由
0452デフォルトの名無しさん (ワッチョイ b23c-lGK7)
2017/01/15(日) 17:14:18.31ID:HYjV15pa0> 「間違った使い方しか出来ないgetsなんてのもある」
> の意味がわからない
マジで言ってるなら相当頭悪いわ w
どうせ入力が溢れることを防げないとか思ってるんだろうけど常に防げないと思ってるなら経験値が無さすぎ
0453デフォルトの名無しさん (ワッチョイ 1f7b-cG99)
2017/01/15(日) 17:21:42.54ID:T6BZe6fz0頭悪い本人? 横レスなら引っ込んでろ
0454デフォルトの名無しさん (ワッチョイ 677b-dqLr)
2017/01/15(日) 17:23:45.52ID:OwCHVx6x0経験値があったら安全に使えるのか。
凄いねそのお前の経験値が他の人にもあったら規格から削除されることもなかったのにね。
0455デフォルトの名無しさん (ワッチョイ b23c-lGK7)
2017/01/15(日) 17:44:54.96ID:HYjV15pa0横レス?
ID も見てないアホですか? w
>>454
> 経験値があったら安全に使えるのか。
使えるだろ
使えない理由がないわ
> 凄いねそのお前の経験値が他の人にもあったら規格から削除されることもなかったのにね。
バカなの?
使える機会が少ないとか >>445 みたいなアホが多いとかで廃止されてるだけだろ
0456デフォルトの名無しさん (ワッチョイ 1f7b-cG99)
2017/01/15(日) 18:08:37.56ID:T6BZe6fz0それじゃ、意味わからないおバカさんに解説してあげよう
「間違った使い方しか出来ないgetsなんてのもある」
は
「getsには正しい使い方は存在しない」って意味だよ
0457デフォルトの名無しさん (ワッチョイ b23c-lGK7)
2017/01/15(日) 18:39:14.60ID:HYjV15pa0ぼくはまちがったつかいたかしかしりません
の間違いだろ w
一行の長さが保証されてるならなんの問題もない
0458デフォルトの名無しさん (ワッチョイ b217-sWU2)
2017/01/15(日) 18:40:53.31ID:egsq+OIB00459デフォルトの名無しさん (ワッチョイ 1f7b-cG99)
2017/01/15(日) 18:46:49.06ID:T6BZe6fz0は
「getsには正しい使い方は存在しない」って意味だって言う事がわかったかな?
これがわからないと言うから、頭悪いと言ったんだよ
0460デフォルトの名無しさん (ワッチョイ f619-vSov)
2017/01/15(日) 19:14:33.27ID:R1qhOvTe00461デフォルトの名無しさん (ワッチョイ 677b-dqLr)
2017/01/15(日) 19:23:11.75ID:OwCHVx6x0このプログラムへの入力は一行にN文字までにしてね!
ってどこかに書いておくのか。アホらしい。
そんな設計が正しいと信じてるならお前にとってはそれが正しい使い方なんだろうね。
0462デフォルトの名無しさん (ワッチョイ b25b-QKPs)
2017/01/15(日) 19:32:26.13ID:GuIWlHA40初心者が使う言語ではないし、初心者に使わせる言語でも無い。
プロのプログラマーが作って、プロのオペレーターが使うのを想定してる。
間違うのが怖いならベーシックでもやってろよ
0463デフォルトの名無しさん (ワッチョイ 677b-dqLr)
2017/01/15(日) 19:34:16.82ID:OwCHVx6x0断じて動いてるように見えるけど実は結果が壊れてるとかではない。
0464デフォルトの名無しさん (ワッチョイ 1f7b-cG99)
2017/01/15(日) 19:42:52.00ID:T6BZe6fz0ほら、トンデモない馬鹿だったろ
> 一行の長さが保証されてるならなんの問題もない
0465デフォルトの名無しさん (ワッチョイ 677b-dqLr)
2017/01/15(日) 19:45:03.38ID:OwCHVx6x0明らかに使い方を間違えていると解るのであれば、正しくエラーメッセージを出力するように実装するのがプロのプログラマ
結果が予測できないような実装になるのは未熟すぎる。
getsを使うようなプログラマにプロの仕事は出来ないよ
0466デフォルトの名無しさん (ワッチョイ 4f42-q48i)
2017/01/15(日) 19:45:49.89ID:YV5ExKYS0「暴走する?仕様です笑」
0467デフォルトの名無しさん (ワッチョイ 1f7b-cG99)
2017/01/15(日) 19:47:26.89ID:T6BZe6fz0行の長さをチェックしつつ全部読んで、中間ファイルに書き出し、それをfreopeして大爆笑
0468デフォルトの名無しさん (ワッチョイ b23c-lGK7)
2017/01/15(日) 19:50:33.37ID:HYjV15pa0はあ?
仕様って知ってるか? w
自分が出力したデータを読むとかも想定できないのかよ
0469デフォルトの名無しさん (ワッチョイ b25b-QKPs)
2017/01/15(日) 19:52:34.93ID:GuIWlHA40時代が違うし、用途が違う。
getsでも十分なバッファを用意しておけば良いだけの事だろう。
たいてい特定のコマンドとかしか入力しないんだから、
何文字以上入力するなって言っておけば良いだけの事。
たぶん君は若いんだよ。
古い人間はプログラム側を信用するのも危険って知ってる
0470デフォルトの名無しさん (ワッチョイ b23c-lGK7)
2017/01/15(日) 19:57:58.30ID:HYjV15pa0バカはこれだから w
仕様通りの動作をするように組むのがプロだよ
そもそも常にメッセージ出せるわけでもないし
0471デフォルトの名無しさん (ワッチョイ 1f7b-cG99)
2017/01/15(日) 19:58:19.95ID:T6BZe6fz0ぷぷぷ
そのような頭悪い強結合の設計は「正しく無い」ので、その設計に基づいたgetsの使い方もまた正しく無い
0472デフォルトの名無しさん (ワッチョイ b23c-lGK7)
2017/01/15(日) 19:59:08.85ID:HYjV15pa0いちいちバカを晒さんでいいぞ
0473デフォルトの名無しさん (ワッチョイ 677b-dqLr)
2017/01/15(日) 20:00:39.95ID:OwCHVx6x0そのわざわざ信用出来ないプログラムを書くのが
0474デフォルトの名無しさん (ワッチョイ 329f-3X21)
2017/01/15(日) 20:01:45.76ID:Q6BJ1v/20でも 「getsには正しい使い方は存在しない」 は言い過ぎだな
0475デフォルトの名無しさん (ブーイモ MMd2-yP9u)
2017/01/15(日) 20:02:02.25ID:Hg/wNX2QM0476デフォルトの名無しさん (ワッチョイ 677b-dqLr)
2017/01/15(日) 20:02:12.06ID:OwCHVx6x0予測不可能な動作をするより前に死ぬ事が大事って事が解らんのかね?
0477デフォルトの名無しさん (ワッチョイ b23c-lGK7)
2017/01/15(日) 20:03:43.43ID:HYjV15pa0> そのような頭悪い強結合の設計は「正しく無い」ので、その設計に基づいたgetsの使い方もまた正しく無い
オレオレ定義乙 w
0478デフォルトの名無しさん (ワッチョイ b217-OYug)
2017/01/15(日) 20:05:28.16ID:GJnk2lJp00479デフォルトの名無しさん (ワッチョイ 677b-dqLr)
2017/01/15(日) 20:09:08.86ID:OwCHVx6x0当時はプログラムを作成するのも実行するのも限られた人のみでセキュアコーディングなんて考えかたはかけらも存在しなかったから仕方ない。
でも今の時代に当時のままの感覚で語るのはただの老害
0480デフォルトの名無しさん (ワッチョイ 4f42-q48i)
2017/01/15(日) 20:12:35.26ID:YV5ExKYS00481デフォルトの名無しさん (ワッチョイ b23c-lGK7)
2017/01/15(日) 20:16:05.03ID:HYjV15pa0で?
仕様外の動作においてなにが大事かどうかはケースバイケース
常に
> 明らかに使い方を間違えていると解るのであれば、正しくエラーメッセージを出力
が正しいと思ってるならそれこそ経験値が無さすぎ
0482デフォルトの名無しさん (ワッチョイ 1f7b-cG99)
2017/01/15(日) 20:20:49.82ID:T6BZe6fz0今度は強結合がわからないらしい 大爆笑
0483デフォルトの名無しさん (ワッチョイ 1f7b-cG99)
2017/01/15(日) 20:23:07.07ID:T6BZe6fz0それを否定したけりゃ、正しい使い方を例示すれば良い
ID:HYjV15pa0のようにオツムの程度を晒す事になるが
0484デフォルトの名無しさん (ワッチョイ 72c1-SqzF)
2017/01/15(日) 20:23:33.96ID:p20o/xdu00485デフォルトの名無しさん (ワッチョイ 677b-dqLr)
2017/01/15(日) 20:23:44.28ID:OwCHVx6x0エラー発生時に終了するより未定義動作につっこむ方が大事だと?
0486デフォルトの名無しさん (ワッチョイ 1f7b-cG99)
2017/01/15(日) 20:24:25.56ID:T6BZe6fz0ID:HYjV15pa0はそうらしい w
0487デフォルトの名無しさん (ワッチョイ 4f42-q48i)
2017/01/15(日) 20:24:39.42ID:YV5ExKYS00488デフォルトの名無しさん (ワッチョイ 1f7b-cG99)
2017/01/15(日) 20:42:59.44ID:T6BZe6fz00489デフォルトの名無しさん (ワッチョイ b23c-lGK7)
2017/01/15(日) 20:43:41.42ID:HYjV15pa0> 今度は強結合がわからないらしい 大爆笑
勝手な解釈で勝利宣言 w
強結合だから正しくない
って言うのがオレオレ定義って言ってるんだが
>>483
入力の仕様を明示すればいいって書いてあるが?
>>485-486
ケースバイケースの意味がわからんのか?
0490デフォルトの名無しさん (ワッチョイ b25b-QKPs)
2017/01/15(日) 20:45:30.80ID:GuIWlHA40今ならメモリなんか気にする必要ないんだから、
getsのバッファでそれ以上を用意しておけば良いだけだろう。
0491デフォルトの名無しさん (ワッチョイ b25b-QKPs)
2017/01/15(日) 20:47:20.14ID:GuIWlHA40インターフェース部分に用いるべき言語では無いぞ。
0492デフォルトの名無しさん (ワッチョイ 7e13-dHfL)
2017/01/15(日) 20:53:50.03ID:Z39GcWi700493デフォルトの名無しさん (ワッチョイ 6719-vSov)
2017/01/15(日) 20:54:12.51ID:qtyi6+tl00494デフォルトの名無しさん (ワッチョイ 677b-dqLr)
2017/01/15(日) 21:04:30.66ID:OwCHVx6x0じゃあ未定義動作の方が大事っていうケース挙げてみてよ
>>490
古い人間ならパイプぐらい知ってるよね?
0495デフォルトの名無しさん (ワッチョイ 677b-dqLr)
2017/01/15(日) 21:09:13.71ID:OwCHVx6x00496デフォルトの名無しさん (ワッチョイ 6719-vSov)
2017/01/15(日) 21:13:49.97ID:qtyi6+tl0人はどんなものも間違った使い方ができないと思い込み
間違った使い方を出来てしまうものを間違って使い
命を落とすこともあるだろうから
間違った使い方ができるものも必要だよ
0497デフォルトの名無しさん (ワッチョイ b25b-QKPs)
2017/01/15(日) 21:14:44.90ID:GuIWlHA40お茶をこぼすのが怖いなら、キーボードを使うべきでは無い。
潔癖すぎると生産できんがな。
getsを使ったプログラムなんてくさるほど運用されとるがな。
0498デフォルトの名無しさん (ワッチョイ 677b-dqLr)
2017/01/15(日) 21:16:00.54ID:OwCHVx6x0間違った使い方しか出来ないものの話してるんですけど。
0499デフォルトの名無しさん (ワッチョイ 677b-dqLr)
2017/01/15(日) 21:20:38.41ID:OwCHVx6x0セキュアコーディング全否定かよ。
お前がやろうとしないだけ(もしくは出来ないだけ)でまともなC言語使い未定義動作に突っ込まないように努力してんの。
この発言は老害としか言えねえな
仕事でC言語書いてるなら脆弱性発生器さんとも呼べるか
0500デフォルトの名無しさん (ワッチョイ 6719-vSov)
2017/01/15(日) 21:24:08.33ID:qtyi6+tl00501デフォルトの名無しさん (ワッチョイ b25b-QKPs)
2017/01/15(日) 21:25:56.89ID:GuIWlHA40オペレーターが注意する事でgetsのバッファオーバフローが防げるならそれで良いだろう。
何度も言うが、Cはそういう前提で開発された語だ。
プログラマーやオペレーターが間違ったら、基本的にそれを防げない言語なんだよ。
セキュアコーティングを目指すならCを用いるべきではない。
それこそ根本的に間違いだろう。
0502デフォルトの名無しさん (ワッチョイ 677b-dqLr)
2017/01/15(日) 21:26:45.21ID:OwCHVx6x0そりゃ、間違ってることを正しいと主張されたら間違ってる事が広まって欲しくないからクレームだすよね。
0503デフォルトの名無しさん (ワッチョイ 1f7b-cG99)
2017/01/15(日) 21:29:23.52ID:T6BZe6fz0http://echo.2ch.net/test/read.cgi/tech/1484483294/
0504デフォルトの名無しさん (ワッチョイ 6719-vSov)
2017/01/15(日) 21:32:21.51ID:qtyi6+tl0C言語はハッカーが使う言語だからね
0505デフォルトの名無しさん (ワッチョイ 677b-dqLr)
2017/01/15(日) 21:37:56.33ID:OwCHVx6x0Linuxがそんな考えで実装されてたら誰も使ってねえよ
0506デフォルトの名無しさん (ワッチョイ 6719-vSov)
2017/01/15(日) 21:45:37.60ID:qtyi6+tl0それがハッカーの書くプログラムだ
0507デフォルトの名無しさん (ワッチョイ 4f42-q48i)
2017/01/15(日) 21:49:39.20ID:YV5ExKYS0PHPでもSQLでもシェルスクリプトでも果ては画像ファイルも使うから
0508デフォルトの名無しさん (ワッチョイ b23c-lGK7)
2017/01/15(日) 21:55:03.08ID:HYjV15pa0> じゃあ未定義動作の方が大事っていうケース挙げてみてよ
strlen() に nul 終端してないデータを与えたら未定義動作になるから使用禁止な
今のインターフェースを変えることより未定義動作になることが重要と言うならやれば?
> 古い人間ならパイプぐらい知ってるよね?
パイプを使うプログラムに使うのが間違いと言うだけだろ
0509デフォルトの名無しさん (ワッチョイ df4a-oWec)
2017/01/15(日) 21:56:51.93ID:BJa8Ru6k00510デフォルトの名無しさん (ワッチョイ 6719-vSov)
2017/01/15(日) 21:57:21.51ID:qtyi6+tl0つまりはそいうことだ
0511デフォルトの名無しさん (ワッチョイ b23c-lGK7)
2017/01/15(日) 21:57:44.02ID:HYjV15pa0使用通り使えば正しい結果を出すのに正しくないという理由は?
より良い = 正しい
ではないことぐらいは理解してるよね?
0512デフォルトの名無しさん (ブーイモ MM8b-esp+)
2017/01/15(日) 21:58:12.43ID:HXiVsc1JM後は自己責任で何でも良いや
0513デフォルトの名無しさん (ワッチョイ 4f6f-Ncwg)
2017/01/15(日) 23:04:34.22ID:tpaH0xF80それを受けて、初心者向けのQAなどで、getsを使うと余計なトラブルに合う、
gets は使うべきでない、という言い方がよくされてた。
どうもそれぐらいの頃にC言語を入門した人は、刷り込まれて、getsに対する
嫌悪感が強い気がするね
0514片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK8b-YaJ8)
2017/01/15(日) 23:08:25.71ID:DPFQ7IqoK0515デフォルトの名無しさん (ワッチョイ 3217-q48i)
2017/01/15(日) 23:17:54.27ID:+Zy353bS00516デフォルトの名無しさん (ワッチョイ 329f-3X21)
2017/01/15(日) 23:24:38.70ID:Q6BJ1v/20⑴ 入力データはヒープに格納しましょう
スタックではオーバーフロー検出が困難になるので避けましょう
⑵ ヒープのメモリ管理はmallocにお任せではなく自前で行いましょう
OS(フリースタンディングの場合はCPU)の機能をよく確認して
適切なサイズで領域を確保しましょう
⑶ アクセスバイオレーションを必ずトラップしましょう
確保済領域を越えたアクセスが行われた場合に必ず検出しましょう
領域を伸長して確保するなりエラー終了するなり適切に対処しましょう
0517デフォルトの名無しさん (ワッチョイ 4f42-q48i)
2017/01/15(日) 23:30:53.36ID:YV5ExKYS00518デフォルトの名無しさん (ワッチョイ 1f7b-cG99)
2017/01/15(日) 23:38:57.60ID:T6BZe6fz00519デフォルトの名無しさん (ワッチョイ 3217-q48i)
2017/01/15(日) 23:52:02.38ID:+Zy353bS0高速なライブラリの開発に使うか
カーネルレイヤのドライバやハードウェアコントローラの開発に使うか
ノンOSプラットフォームの開発で使うか
WindowsでVS使うような提供されたAPIだけ叩いてりゃいいような
プログラマとはいい難いせいぜいよくてスクリプタ低度の奴が
扱える代物ではないよね
0520デフォルトの名無しさん (ワッチョイ b67b-ZK7w)
2017/01/16(月) 00:38:37.29ID:lrVKlg3e00521デフォルトの名無しさん (ドコグロ MM4e-lGK7)
2017/01/16(月) 06:54:48.94ID:6pMMhvrLMと
使えない
の区別のつかない子が暴れてただけでしょ
要するにいきなり gets() が使えないって言い出した >>445 がもっとも使えないって言うオチ w
あと下らんスレたてた ID:T6BZe6fz はちゃんと後始末しとけよ
0522デフォルトの名無しさん (ワッチョイ 7e13-dHfL)
2017/01/16(月) 07:43:01.47ID:wa9Hwxuh0gets() で (3)アクセスバイオレーションをトラップするにはどうすればいいの?
0523デフォルトの名無しさん (ワッチョイ 1f7b-cG99)
2017/01/16(月) 08:47:50.34ID:4D4bT+Tb0getsの「正しい使い方」はネタしか出てないぞ
0524デフォルトの名無しさん (ドコグロ MM4e-lGK7)
2017/01/16(月) 12:45:55.67ID:6pMMhvrLM>>511 に回答してからほざこうね、ぼくちゃん w
0525デフォルトの名無しさん (ワッチョイ 1f7b-cG99)
2017/01/16(月) 13:23:00.03ID:4D4bT+Tb00526デフォルトの名無しさん (ワッチョイ db2c-dHfL)
2017/01/16(月) 13:25:06.29ID:5bpc7cMa00527デフォルトの名無しさん (ワッチョイ 1f7b-lDPz)
2017/01/16(月) 14:13:58.14ID:pfhmv7nO0ドキュメントに制約事項として書いておけば仕様ですね
0528デフォルトの名無しさん (フリッテル MMce-xA2o)
2017/01/16(月) 17:22:38.13ID:jKqhoN+GM0529デフォルトの名無しさん (ドコグロ MM4e-lGK7)
2017/01/16(月) 18:47:01.00ID:6pMMhvrLM誤字にしか突っ込めないとかかわいそうな奴 w
0530デフォルトの名無しさん (ワッチョイ 1f85-y9rD)
2017/01/16(月) 19:02:29.34ID:LsnAvwpU00531デフォルトの名無しさん (ワッチョイ 3217-q48i)
2017/01/16(月) 19:46:22.11ID:AUBfY0al00532デフォルトの名無しさん (ワッチョイ 1f7b-cG99)
2017/01/16(月) 19:58:01.48ID:4D4bT+Tb0>誤字にしか突っ込めないとかかわいそうな奴 w
つまり本気で
> 「このプログラムに80文字を超える行を入力してはいけません。入力した場合の動作は不明です。」
こう考えてるって事だな ぷぷぷ
0533デフォルトの名無しさん (ドコグロ MM4e-lGK7)
2017/01/16(月) 20:23:22.16ID:6pMMhvrLMで?
>>511 にはなにも言えないってことでいいのかな? w
0534デフォルトの名無しさん (ワッチョイ 92c0-oWec)
2017/01/16(月) 21:49:54.99ID:YbHVSczU0ダンディはいなくてもいい存在だから
0535デフォルトの名無しさん (ワッチョイ 1f7b-cG99)
2017/01/16(月) 22:14:50.18ID:4D4bT+Tb0可哀想なくらいに頭悪いな >>532がそれだよ
「使用通り使う」とやらはネタでしか無い
0536デフォルトの名無しさん (ワッチョイ b23c-lGK7)
2017/01/16(月) 23:22:23.48ID:Afs2A6pw00537デフォルトの名無しさん (ワッチョイ c3dc-0v0L)
2017/01/17(火) 05:56:42.40ID:snMaBsBG0>>460 はソレだと思ったんだけど。
0538デフォルトの名無しさん (ワッチョイ 67e3-UjPM)
2017/01/17(火) 19:16:21.10ID:3xEzL0NM00539デフォルトの名無しさん (JP 0Hf2-dHfL)
2017/01/18(水) 10:50:37.16ID:I4y9jt7uHint main(void){
int i;
int d[255];
for(i = 0;i < 5;i++){
scanf("%d", d[i]);
}
for(i = 0;i < 5;i++){
printf("%d", (d[i] + 1)- d[i]);
}
これどこが間違ってるの?
0540デフォルトの名無しさん (ワッチョイ 4f19-YL17)
2017/01/18(水) 11:08:01.51ID:p9TLQNPi0とりあえず return が無いからエラーでるな。
0541デフォルトの名無しさん (ドコグロ MMe3-S8Zq)
2017/01/18(水) 11:12:01.96ID:5+QtbuoXM何をやってどうなって欲しいのがどうなったかくらい書こうよ
0542デフォルトの名無しさん (ワッチョイ 4f42-q48i)
2017/01/18(水) 11:15:22.05ID:NzS4tvDO00543デフォルトの名無しさん (JP 0Hf2-dHfL)
2017/01/18(水) 13:20:22.60ID:VNRYcAN1H0544デフォルトの名無しさん (ワッチョイ 1f7b-lDPz)
2017/01/18(水) 14:57:19.16ID:AiIDzBtL00545デフォルトの名無しさん (フリッテル MMce-xA2o)
2017/01/18(水) 14:58:24.13ID:pHJgjtGxMscanfの第二引数がポインタじゃなく値を渡してるのがいけない
0546デフォルトの名無しさん (ワッチョイ c3dc-0v0L)
2017/01/18(水) 15:24:14.06ID:kHLvx3oS0main() の関数終了の閉じ波カッコがないという引っ掛け問題じゃないのか。
0547デフォルトの名無しさん (ワンミングク MMe2-IBT7)
2017/01/18(水) 15:28:19.11ID:w2Ge5miGMd[i]+1 は
d[i+1]な気がする
もちろんどっちでもエラーにはならないない
0548デフォルトの名無しさん (ワッチョイ 1f7b-cG99)
2017/01/18(水) 16:31:10.29ID:y5PvnF5k0>とりあえず return が無いからエラーでるな。
初心者は解答しないように
0549デフォルトの名無しさん (ワントンキン MMe2-STcG)
2017/01/18(水) 20:11:44.79ID:S41kFDpWM0550デフォルトの名無しさん (ワッチョイ b20b-0Plu)
2017/01/18(水) 20:39:43.31ID:24H6FiaC0書かなければ0を返すと保証されてます
0551デフォルトの名無しさん (ワッチョイ 2f3c-dHfL)
2017/01/18(水) 20:45:09.76ID:sCxzsbAt00552デフォルトの名無しさん (ワンミングク MMe2-SqzF)
2017/01/18(水) 21:01:22.21ID:0GSOJvhdMc99からは
0553デフォルトの名無しさん (ワッチョイ 2f3c-dHfL)
2017/01/18(水) 21:06:51.34ID:sCxzsbAt0ありがとう
C++環境でCコーディングしてるだけのケースが多々あって
実はそれC++だけ に嵌ってるかと思って
0554デフォルトの名無しさん (ワッチョイ 12cb-q48i)
2017/01/18(水) 22:01:46.51ID:goP4qmTy00555デフォルトの名無しさん (ワッチョイ 4f42-q48i)
2017/01/18(水) 22:08:07.50ID:NzS4tvDO0年寄りだから許して
0556デフォルトの名無しさん (ワッチョイ 3217-q48i)
2017/01/18(水) 22:38:02.75ID:ekivbMLx00557デフォルトの名無しさん (ワッチョイ f37b-aKms)
2017/01/18(水) 23:16:18.54ID:YJRB0oa00それが俺のジャスティス
0558デフォルトの名無しさん (ブーイモ MM8b-ws9s)
2017/01/18(水) 23:34:18.09ID:qZpBfO5GM0559デフォルトの名無しさん (ワッチョイ cfba-Taza)
2017/01/19(木) 00:00:05.15ID:NeX58ZmE0暗黙の動作が規定されるほど縛りが多くなってCで書く旨味が減ってくると思うんだけどな
あと可変引数とか割とアクロバットな関数を最初に習うのは嫌がらせだと思う
stdioはゲッツとかも失敗して学べ的な修行のためにあるんだろうか、std*から外しても良いくらいだと思う
main()の戻り値保証するより標準関数を整備しないのか、まあ今更の言語だけども…
以上愚痴でした
0560デフォルトの名無しさん (ワッチョイ 737b-EU0b)
2017/01/19(木) 00:30:32.41ID:k8vd3mrR0ネタだと思ってるんだろうけど真面目な話で「紛れの無い書き方」を意識してる
型なんてどうせtypedefの一行でしか書かないし手間でも何でもないから全て明示する
あーそれとautoは別の用途で使われだしたから書いちゃダメよ
0561デフォルトの名無しさん (ブーイモ MM27-xQI9)
2017/01/19(木) 01:31:07.51ID:LPaFmeuyMc++じゃなくて?
0562デフォルトの名無しさん (アウアウカー Sac7-DPdO)
2017/01/19(木) 08:41:12.63ID:NZqa4lWfac++で書く似非cならあるんだろうけど
0563デフォルトの名無しさん (フリッテル MMff-p+z4)
2017/01/19(木) 12:48:24.75ID:DrepgePAM暗黙的に使えるものでも明示的に使う
ってCだと定石かと
不慮の事故を防ぐ
定数型は今時stdint.hで定義済みのものしか危険で使わないし
0564デフォルトの名無しさん (JP 0Hc7-xQI9)
2017/01/19(木) 13:11:03.60ID:XHrL8OB2H0565デフォルトの名無しさん (ワッチョイ 03e3-JCkM)
2017/01/19(木) 20:42:15.98ID:7H+jgSV100566デフォルトの名無しさん (ワッチョイ ff17-SmTw)
2017/01/19(木) 22:05:39.71ID:sNNglGQF0・関数内に閉じている事
・上から下への一方行である事
0567デフォルトの名無しさん (ワッチョイ 037b-rTuY)
2017/01/19(木) 22:31:28.78ID:bO+XZlhy00568デフォルトの名無しさん (ワッチョイ cf7b-PnnS)
2017/01/20(金) 01:15:25.05ID:/ixeQkYS00569デフォルトの名無しさん (ワッチョイ 634a-jjzP)
2017/01/20(金) 01:27:35.42ID:1c/0Zcpc0関数内で閉じないgotoってあるの?
0570デフォルトの名無しさん (ワッチョイ ff5b-516J)
2017/01/20(金) 03:04:22.97ID:xcR109kr00571デフォルトの名無しさん (JP 0H27-Up5i)
2017/01/20(金) 08:39:58.62ID:Nvso2zBqH0572デフォルトの名無しさん (ワッチョイ cf4f-3qL8)
2017/01/20(金) 08:47:09.81ID:qkw/qgqA0初期化が漏れるって宣言を飛ばすことになると思うんだけども
0573デフォルトの名無しさん (ドコグロ MM47-nqcr)
2017/01/20(金) 10:01:48.58ID:k1jTWx+qM規約で禁止されちゃってること多いけど
0574デフォルトの名無しさん (ワンミングク MM9f-BwFa)
2017/01/20(金) 12:43:30.09ID:BB/TuuEfM0575デフォルトの名無しさん (ワッチョイ 237b-rTuY)
2017/01/20(金) 12:45:09.26ID:B3YDppGR00576デフォルトの名無しさん (アウアウカー Sac7-DPdO)
2017/01/20(金) 12:54:36.75ID:8UbAIdNoaVLA以外は宣言飛ばしても問題ないはず
初期化していないから、不定値なだけ
0577デフォルトの名無しさん (ササクッテロル Sp87-5ScM)
2017/01/20(金) 23:17:46.34ID:axiV8iWTp沢山いるよ
0578デフォルトの名無しさん (ワッチョイ 737b-EU0b)
2017/01/20(金) 23:33:36.80ID:Cg6WMpCY0もっと便利なフロー制御構造がある中でのgotoだし実は使いどころは少ない
だからこそ効果的なところで>>566のように問題のない使い方で便利に使えばいい
ハナから拒否る必要も特別視する必要もない
0579デフォルトの名無しさん (ワッチョイ cf7b-rTuY)
2017/01/20(金) 23:41:09.42ID:esT1VQmf00580デフォルトの名無しさん (ワッチョイ 2342-SmTw)
2017/01/20(金) 23:53:52.00ID:95+4MF/b00581デフォルトの名無しさん (ワッチョイ 0f48-BwFa)
2017/01/21(土) 00:18:42.31ID:ceXo2OiN00582デフォルトの名無しさん (ワッチョイ 6378-AVdH)
2017/01/21(土) 00:46:42.08ID:DSUhNQfN0C++はCを改良したものだそうですが、
古い方のCを使うメリットはもうないのでしょうか?
それとも別物なのでしょうか?
0583デフォルトの名無しさん (ワッチョイ 83a1-5ScM)
2017/01/21(土) 01:24:11.75ID:pcFLx4Ty0優劣を競うものでは無いのは確か
0584デフォルトの名無しさん (ワッチョイ cf7b-5ScM)
2017/01/21(土) 01:51:39.38ID:RmTA4cQd0時々新しいCにリベースしてる
0585デフォルトの名無しさん (ワッチョイ 033b-uAub)
2017/01/21(土) 09:50:14.25ID:B+4iZq8B0C#はCを改良したものだそうですが(ry
0586デフォルトの名無しさん (ワッチョイ 6302-lIVJ)
2017/01/21(土) 11:28:38.80ID:xB1N0Svq0乳見たくてしゃあない
0587デフォルトの名無しさん (ワッチョイ 235b-nqcr)
2017/01/21(土) 11:40:41.10ID:JVJ51h9+0おっぱぶでも行ってこい
0588デフォルトの名無しさん (ワンミングク MM9f-cBXx)
2017/01/21(土) 14:21:31.78ID:E3hCYHfIM0589デフォルトの名無しさん (JP 0H27-Up5i)
2017/01/21(土) 16:14:05.71ID:0yByJcs8HC++はCの建て増しだから
使えるなら使ったほうが便利だし、無いならCの不自由さを我慢して使うだけ
Cの方が小さくて身軽な分、狭いところへも潜っていけるという強みならある
0590デフォルトの名無しさん (ワッチョイ ff17-SmTw)
2017/01/22(日) 15:18:21.26ID:Yl4nAGke0Cは中水準言語(昔はCも高水準言語と呼ばれてた)
Cはコンパイル後のアセンブラをそれなりに意識した組み方ができるところが最大の魅力
0591デフォルトの名無しさん (ワッチョイ 6f13-3qL8)
2017/01/22(日) 16:16:28.06ID:2ikRDhsq0教科書高いhttps://www.amazon.co.jp/dp/4627526202/
0592デフォルトの名無しさん (ワッチョイ cf33-AyJn)
2017/01/22(日) 16:20:10.62ID:3ymhMJps0機能視点なら、CはC++のサブセット。
Cを文法のベースにしている言語は、C++以外にも多いと思う。(perl、java、js、C#、obj-C、etc.)
Cだけしか使えない環境って、もうあまり無いと思うけど、いろいろな理由から仕事上の約束として、「Cに限る」としている場合は結構あるかな。
例えば、組み込みの基礎部分にはC一択。プログラム時もリンク時も、メモリアドレスをハンドリングしやすいから。
結論:
Cが即戦力として必要になるかはケースバイケースだが、個人の技能を高めるための知識としては、知っておいて損は無いと思う。
但し:
Cだけを勉強するという方法を取らなくとも、上記言語を複数使っているうちに、結果的にある程度C部分が身につく気はする。
0593デフォルトの名無しさん (ワッチョイ 6f13-3qL8)
2017/01/22(日) 16:27:58.13ID:2ikRDhsq0>perl、java、js、C#、obj-C、etc.
obj-C 以外には「ポインタ」という考え方がない
0594デフォルトの名無しさん (ドコグロ MM07-uAub)
2017/01/22(日) 21:35:27.52ID:VMIoxFghMperl だとリファレンスだけど同じものだよ。
0595デフォルトの名無しさん (ワッチョイ ff17-SmTw)
2017/01/22(日) 22:16:15.32ID:qcD1gAA300596デフォルトの名無しさん (ワッチョイ ff5b-516J)
2017/01/22(日) 22:27:28.47ID:UAB908k/0アクセス自体がポインタ参照みたいなもんだろう。
0597デフォルトの名無しさん (アウアウカー Sac7-DPdO)
2017/01/22(日) 22:57:31.71ID:+baTcR6ha0598デフォルトの名無しさん (ワッチョイ c33c-lIVJ)
2017/01/22(日) 23:52:11.94ID:Zj18/PLE0今独学で基礎から勉強中なので頑張ります
0599デフォルトの名無しさん (ワッチョイ 83a1-5ScM)
2017/01/23(月) 00:38:51.57ID:ayLfxszv00600デフォルトの名無しさん (ドコグロ MM7f-j6UX)
2017/01/23(月) 08:20:50.15ID:mc6Hyr1KM0601デフォルトの名無しさん (ワッチョイ ff17-SmTw)
2017/01/23(月) 09:04:57.06ID:Zl63m0Rj0法人番号を数値で保持していて、印字するときにミスったのであろうと思われる、心あたたまるバグの例です
https://pbs.twimg.com/media/C2tJinLUAAI3_IG.jpg
0602デフォルトの名無しさん (ドコグロ MM7f-j6UX)
2017/01/23(月) 12:55:51.68ID:mc6Hyr1KM0603デフォルトの名無しさん (フリッテル MMff-p+z4)
2017/01/23(月) 14:10:03.40ID:B8NHXXX/M全然心温まる話しちゃうわ
0604デフォルトの名無しさん (JP 0H1f-3qL8)
2017/01/23(月) 14:26:42.16ID:jBIQNKZQHchar i;
int cnt = 0;
for(i = 0;i < 7;i++){
scanf("%s", n[i]);
if(strcmp("no" == n[i]))
cnt++;
}
printf("%d", cnt);
ド素人です
strcmpの使い方がわかりません
どこがいけないの?
0605デフォルトの名無しさん (ワッチョイ 8fd4-4Kfo)
2017/01/23(月) 14:36:38.76ID:y6xecmuF0|
|
J
0606デフォルトの名無しさん (ドコグロ MMff-nqcr)
2017/01/23(月) 14:43:41.90ID:AYi5lVylM利用例はググれば出てくるんで
それ見てからどうぞ
0607デフォルトの名無しさん (ワッチョイ ff5b-516J)
2017/01/23(月) 15:47:52.76ID:V1f/l7L40俺はポインタ派だ!
0608デフォルトの名無しさん (フリッテル MMff-p+z4)
2017/01/23(月) 16:39:16.01ID:uQGAPPOFM○: char n[7][256];
✕: strcmp(
0609デフォルトの名無しさん (アウアウカー Sac7-Taza)
2017/01/23(月) 16:39:48.36ID:ICmFMePta0610デフォルトの名無しさん (フリッテル MMff-p+z4)
2017/01/23(月) 16:40:45.79ID:uQGAPPOFM○: char n[7][256];
✕: strcmp("no" == n[i])
○: strcmp("no", n[i])
0611デフォルトの名無しさん (ワッチョイ b3dc-AO4H)
2017/01/23(月) 17:24:28.37ID:zKyJpw850一致すれば0、不一致なら非0、俺も毎度引っかかるのだけど。
0612デフォルトの名無しさん (ワッチョイ cf4f-3qL8)
2017/01/23(月) 17:34:59.43ID:TVEb5yq70辞書順における大小を符号つけての3状態を取り扱ってるから、そうなっちゃうん
0613デフォルトの名無しさん (スッップ Sd1f-Lt7C)
2017/01/23(月) 17:55:33.16ID:NnVUMG+Ydscanf等で文字入力をしてもらう時に
コンソール上にエコーバックさせないようにしたいです
開発環境はMacBookですが色々調べてると
ioctlでそれが実現できるようで、、、
ただサンプルプログラム見ながらやってるのですが
termios.h
のincludeでそんなヘッダーファイルなどないと怒られてしまいます
やむなく自分でtermios構造体を実装して
ECHOなどの定数も自分で定義してやってみたのですが
エラーは出ないもののエコーバックはされてしまいます
なのでどうにかして正規の方法で実現したいのですが
temios.hはどうやって読み込むのでしょうか?
0614デフォルトの名無しさん (ドコグロ MM7f-j6UX)
2017/01/23(月) 18:47:39.93ID:mc6Hyr1KM開発環境がわからんけどとりあえず警告レベルは最大にしとけ
0616デフォルトの名無しさん (スッップ Sd1f-Lt7C)
2017/01/23(月) 19:28:59.30ID:NnVUMG+Ydありがとうございます
そういうものがあるというのを知れたのは収穫ですが
出来るはずのことが出来ていないこの状況のまま放置して
別の方法を試すのはよくないと思うので
引き続きioctlでやる方法を知りたいです
0617デフォルトの名無しさん (ワッチョイ 2342-SmTw)
2017/01/23(月) 20:07:28.53ID:IjK09lgG0Xcodeはインストールされているんだよね?
terminal 起動して、/usrの下にincludeディレクトリはある?
無い時は、Command Line Tools for Xcode をインストールすればいいよ
Appleのサイトからダウンロードできるから
0618デフォルトの名無しさん (JP 0H1f-3qL8)
2017/01/24(火) 14:25:51.06ID:s5yedK4vHscanf("%s", s);
scanf("%s", t);
if(strcmp(s, t) == 0)
puts("Yes");
else
puts("No");
return 0;
これ、何処が間違いですか?
0619デフォルトの名無しさん (ワッチョイ cf4f-3qL8)
2017/01/24(火) 14:29:35.98ID:HgJt/pLf00620デフォルトの名無しさん (ワッチョイ 6f13-3qL8)
2017/01/24(火) 16:22:57.86ID:KbL3L2m80s や t に 32バイト分よりも多く入力されたらどうなるの?
0621デフォルトの名無しさん (ワッチョイ 637b-jh1Y)
2017/01/24(火) 16:41:37.13ID:trMEtGhx00622デフォルトの名無しさん (JP 0H27-Up5i)
2017/01/24(火) 17:16:17.43ID:tjYeiy24H0623デフォルトの名無しさん (JP 0Hc7-xQI9)
2017/01/24(火) 17:38:04.91ID:kW6JMx9eH0624デフォルトの名無しさん (ワッチョイ ff17-SmTw)
2017/01/24(火) 23:14:40.13ID:9a2CfgHX0間違ってないよ
普通にコンパイル通るし
普通に入力、比較、表示される
0625デフォルトの名無しさん (ワッチョイ b3dc-AO4H)
2017/01/25(水) 06:20:28.53ID:e9Bh0UQ80別環境に移植する時かコンパイラのバージョンアップ時にでも
こっそり直しとけばいいかなって感じだけど、
「任意コード実行」と言われるとセキュリティ上の重大な弱点、
今すぐ修正版を配布しなくちゃ、という気がするな。
0626デフォルトの名無しさん (ワッチョイ 637b-voKO)
2017/01/25(水) 08:00:21.54ID:m0OoWaNd00627デフォルトの名無しさん (ドコグロ MMff-nqcr)
2017/01/25(水) 08:03:00.58ID:o3R3B2w3Mそこで漢字間違えるなよ
0628デフォルトの名無しさん (ドコグロ MMff-j6UX)
2017/01/25(水) 08:21:18.18ID:fntd/u0oMなんだろ
よっぽど悔しかったんだろうな w
0629デフォルトの名無しさん (ワッチョイ 037b-rTuY)
2017/01/25(水) 08:23:40.51ID:5KwEWhG70ってのも書いとかないとな。
0630デフォルトの名無しさん (ワッチョイ 637b-voKO)
2017/01/25(水) 08:37:14.92ID:m0OoWaNd0「使用書」書けるようになったか?w
0631デフォルトの名無しさん (ドコグロ MMff-j6UX)
2017/01/25(水) 12:43:42.15ID:fntd/u0oMそこまで粘着するとは思わなかったが w
0632デフォルトの名無しさん (エーイモ SE1f-Fg9w)
2017/01/25(水) 16:05:19.22ID:3mED4RljElinuxとwindowsとmacで動かすものを作る場合
stdio.hとか標準ヘッダーだけを使っておけば固有の書き方しなくても問題ないですか?
0633デフォルトの名無しさん (ガックシ 067f-J7L1)
2017/01/25(水) 16:48:33.61ID:2OzyrQrs6時間を精密に測ろうとclock()を使ってみました。
エンターキーを押したタイミングを保存するために
clock_t c1, c2, trigger;
int i;
c1 = clock();
getchar();
trigger = clock();
for(i = 0; i < 1e+9; i++);
c2 = clock();
printf(
0634デフォルトの名無しさん (ガックシ 067f-J7L1)
2017/01/25(水) 16:51:47.16ID:2OzyrQrs6続きです
printf("%f\n%f\n", (double)(trigger - c1)/CLOCKS_PER_SEC, (double)(c2 - c1)/CLOCKS_PER_SEC);
で、出力は
0.000038
2.210428
でした。getchar()の間はclock()が止まってしまうようです
conio.hが使えないためkbhit()は使えません。
何か方法は無いでしょうか?
0635デフォルトの名無しさん (ワッチョイ 7ffa-0CED)
2017/01/25(水) 16:58:44.59ID:n0VSo+RY0あるいはエンターキーじゃなくて ^C を使うとか。
0636デフォルトの名無しさん (ワッチョイ 7f6c-3qL8)
2017/01/25(水) 17:03:14.67ID:nzinNv500I/Oイベントの時刻を正確には拾えないんじゃないかな
0637デフォルトの名無しさん (ワッチョイ cf4f-3qL8)
2017/01/25(水) 17:15:04.83ID:JtfgTFTK0加味されて clock() が戻って欲しいってことかな
trigger - c1 が ゼロに近い値になってしまってて、明らかに待ってるってのに
ブロック中の時間経過は無しとして見えてるんじゃ使い難い と。
0638デフォルトの名無しさん (ガックシ 067f-J7L1)
2017/01/25(水) 17:24:07.91ID:2OzyrQrs6ノンブロッキングモードというのは初めて聞きました。
調べてみます。
ありがとうございます!
>>636
できればミリ秒単位で正確に知りたいのですが、おいおい考えていきます。
>>637
そういうことです
説明が分かりにくくてすみません。。。
0639デフォルトの名無しさん (ワンミングク MM9f-rTuY)
2017/01/25(水) 18:00:14.73ID:1iFNjtVTMユーザー入力待ち中はCPUは殆ど寝てるので変わらない
0640デフォルトの名無しさん (ドコグロ MM47-qMwn)
2017/01/25(水) 18:03:13.28ID:ailJH66eMそのレスはスルーすべき
0641デフォルトの名無しさん (ワッチョイ ff17-SmTw)
2017/01/25(水) 22:20:09.57ID:G8iMNdQB0gettimeofday()でどう?
0642635 (ワッチョイ 8afa-jt4/)
2017/01/26(木) 06:14:45.36ID:2AOY7GkW0struct timeval tv[3];
int i;
gettimeofday( &tv[0],NULL);
getchar();
gettimeofday( &tv[1],NULL);
for(i = 0; i < 1e+9; i++);
gettimeofday( &tv[2],NULL);
for ( i = 0; i < 3; i++){ printf("%lu %09lu\n",tv[i].tv_sec,tv[i].tv_usec); }
0643デフォルトの名無しさん (ワッチョイ 1fdc-9HlY)
2017/01/26(木) 07:58:36.22ID:5UtgO6zk0とか man gettimeofday に出てるけど、どうなんだろ?
手元の環境だとどっちもデフォルトで使えるみたいだが。
0644デフォルトの名無しさん (ガックシ 06a6-Gp01)
2017/01/26(木) 09:57:05.51ID:FKQz8ib86ありがとうございます!
おかげでかけました。
0645デフォルトの名無しさん (JP 0H9f-k1qt)
2017/01/26(木) 13:26:41.18ID:EVgQFY4KH写真で申し訳ありません。
うちの大学の先生が書いたC言語のソースコードなのですが、
その先生が参考にしたというC言語の入門書を読んでもさっぱり理解できませんでした。
有名な出版社の本に載っていたので、コードが間違ってるとも思えないですし、
どなたか分かりやすく解説していただけないでしょうか?
0646デフォルトの名無しさん (JP 0H7b-McLA)
2017/01/26(木) 14:42:46.17ID:DgVQa7PhH何か別の概念をCっぽく書こうとしただけじゃないのか
その先生にこれは何をするものか聞いてみたら?
0647デフォルトの名無しさん (ワッチョイ 7e7b-316P)
2017/01/26(木) 14:50:07.24ID:++maIYxb0それは、滅茶苦茶な関係のないコード
0648デフォルトの名無しさん (ワッチョイ 7e7b-316P)
2017/01/26(木) 14:54:53.57ID:++maIYxb0何か所、間違いがあるか、言ってみようというクイズ
0649デフォルトの名無しさん (JP 0H9f-k1qt)
2017/01/26(木) 15:31:12.44ID:EVgQFY4KH塩基配列(UCGA)を G=1 それ以外=0 と置き換えるプログラムらしいです
講義などでも特に何も言わずに出してるので、誤植があるとも思えません・・・
ちなみに言語はCで合っているそうです
0650デフォルトの名無しさん (ワッチョイ 7e4f-AZYz)
2017/01/26(木) 16:01:52.64ID:J7ExVqTO00651デフォルトの名無しさん (フリッテル MM76-Tu13)
2017/01/26(木) 16:15:01.33ID:HMBMCFYQM>ちなみに言語はCで合っているそうです
いやいや間違えてるから
++++なんて演算子無いし
整数型に浮動小数点数入れようとしてるし
0652デフォルトの名無しさん (JP 0H9f-k1qt)
2017/01/26(木) 16:31:34.67ID:EVgQFY4KHそうですよね、それは私も疑問に思ってました。
特殊な用法があるのかと解釈してましたが、違うみたいですね・・・
C言語でないとすれば、どのような言語がこのような書き方をするのでしょうか?
0653デフォルトの名無しさん (ブーイモ MMca-McLA)
2017/01/26(木) 17:14:39.85ID:MclODevVM#includeしてる時点でC確定だ
でforの中身がreturnって、何もするつもりもないということ
先生も理解してないんだろこれ
講義の進行上どうしてもそのプログラムが必要なんだったら
中身を説明してくれと詰め寄るしかない
どうでもいいんなら先生のメンツを立ててそっとしておいてやれ
0654デフォルトの名無しさん (オッペケ Sr13-kdTZ)
2017/01/26(木) 17:25:28.36ID:j2cjbmu2rガイジ並みに初心者ですみませんが、
たとえばコマンドライン引数にPlus[Times[Sin[13.4],3],2]
って入力してそれを木構造にいれて計算するプログラム作りたいです。
例えば+-38-*876-みたいに一文字ずつ入れるやつならできるんですが、単語レベルで読み取って木構造に入れる方法がわかりません。
使う関数は決まっていて、
Plus[x,y]=x+y
Times[x,y]=x*y
Subtract[x,y]=x-y
Divide[x,y]=x/y
Sin[x]
Cos[x]
Exp[x]
Log[x]
Power[x,y]=xのy乗
って感じです。
誰か教えてくださいませんか。
0655デフォルトの名無しさん (ワッチョイ 7e4f-AZYz)
2017/01/26(木) 17:39:52.79ID:J7ExVqTO0単語かどうかの切り出しは
仮に1文字ピックアップして それまでの単語の続きかどうかを判断
続きであれば連結して次の文字へ
続きでなければ一旦その文字を返却し それまで連結したものが1かたまり確定
※ 再帰下降で規定できる形かは・・・ どうなんじゃろ?
0656デフォルトの名無しさん (ブーイモ MMca-McLA)
2017/01/26(木) 17:48:27.81ID:MclODevVM0657デフォルトの名無しさん (JP 0H9f-k1qt)
2017/01/26(木) 18:28:12.78ID:EVgQFY4KH本人は何度も確認した、誤植ではない、と言っていたので、
やはり先生が理解していない可能性が高そうです・・・。
詳しく質問するにしても、あまり良い噂を聞かない先生ですし、
因縁を付けられるのも恐いので、そっとしておこうと思います。
みなさん、ありがとうございました。
0658デフォルトの名無しさん (ドコグロ MMa6-8UQW)
2017/01/26(木) 18:34:22.14ID:GoiJIG7TMまずそれC言語でないとダメなのか?
文字列処理が多いからスクリプト言語とかそれでなくてもC++とかの方が余計なことに気を使わなくてすむぞ
0659デフォルトの名無しさん (エーイモ SE6a-EQ2H)
2017/01/26(木) 18:45:23.58ID:Aov2hARvEint main()
{
if (1) {
printf("%d", 1);
} else {
printf("%d", 0);
}
return 0;
}
これをclang -g hello.cしてgdb a.outしたあと
b 5
r
n
n
ってやると最後に
__libc_start_main (main=0x400510 <main>, argc=1, argv=0x7fffffffde28, init=<optimized out>,
fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffde18) at libc-start.c:321
321 libc-start.c: そのようなファイルやディレクトリはありません.
って出るんですけどこれはどういうことですか?
0660デフォルトの名無しさん (ブーイモ MMca-McLA)
2017/01/26(木) 18:50:32.16ID:MclODevVM0661デフォルトの名無しさん (フリッテル MM76-Tu13)
2017/01/26(木) 18:59:25.60ID:7ifRgzM2M大学の研究室ってところは恐ろしいよな
教授は王様見たいなもんだからねぇ
下手に指摘して本当に目つけられたら卒業自体怪しくなる
本当怖い
0662デフォルトの名無しさん (ワッチョイ 2a9f-nHvD)
2017/01/26(木) 19:19:14.41ID:aVTKdlq300663デフォルトの名無しさん (ワッチョイ aa5b-VFvX)
2017/01/26(木) 19:48:38.69ID:hrRQQixV0普通のCコンパイラじゃ無いと思うよ。
0666デフォルトの名無しさん (ワッチョイ 6b7b-1tcs)
2017/01/27(金) 13:56:10.23ID:jIlJlrUs0include "mirna-21.h"
でググルとそれらしきコードの断片が出てくるな
誤植じゃなさそう C言語風の何かだな
質問者は東大君か
誤植に決まってるキリッ
とかつられたアホウは反省するように
0667デフォルトの名無しさん (ワッチョイ 2a90-McLA)
2017/01/27(金) 14:08:49.54ID:JO+Hx8dx00668デフォルトの名無しさん (ワッチョイ 0f4e-CdMM)
2017/01/27(金) 14:13:27.35ID:7MaR5lKL00669645 (JP 0H07-qfIj)
2017/02/02(木) 17:01:03.69ID:Vc1SILDSHその先生の研究室の院生さんに聞いてきました(直接質問するのは憚られるので)
そもそもプログラミング以前に、先生にはC言語の基本的な記述ルールや、
デバッグやコンパイルといった最低限必要な知識がほとんどないそうです。
(本人はC言語の本を一冊すべて暗記した、と言い張っているそうですが・・・)
そのため、あのソースコードは皆さんが指摘されたとおり、
全ての行が間違っている、インクを無駄に消費するだけの駄文(院生談)だそうです。
質問ですらないレスで申し訳ありません。ありがとうございました。
0670デフォルトの名無しさん (ワッチョイ cf4f-0MWP)
2017/02/02(木) 17:24:39.17ID:Vgr2l0Ko0「インクを無駄に消費するだけの駄文」ってかっけーな
0671デフォルトの名無しさん (フリッテル MMff-pooc)
2017/02/02(木) 18:03:07.85ID:pqQ57SepM少なくともCの構文とはかけ離れて過ぎ
コンパイル自体通らないよ
例え超絶マクロでもね
0672デフォルトの名無しさん (JP 0He7-CXHw)
2017/02/02(木) 18:56:29.82ID:j/3vYI1GHたとえspringerから出版されようが教科書なんてそんなものだ
アメリカになら論文書くより教科書書くのを専門にしてる先生もいて、
改定を繰り返した名著もあるけどね
0673デフォルトの名無しさん (ワントンキン MM1f-zA2L)
2017/02/02(木) 22:47:34.49ID:JFoRaqEvMその情報書き込みと読み込みは頻繁に行われるものではなく数週間にに1回で再起動後は無くなっても構いません。
0674デフォルトの名無しさん (ブーイモ MMc7-CXHw)
2017/02/02(木) 23:32:36.51ID:Ch1RuY2tMどっちでも好きな方でいいよ
どちらにしてもちゃんとロックしろよ
でないと100年に一度レベルの誤動作が来月起きるかもしれんぞ
0675デフォルトの名無しさん (ワッチョイ 934e-2G09)
2017/02/03(金) 03:31:26.02ID:GQ++c1010ヴォイニッチ手稿もそんな感じだろうなと思った
0676デフォルトの名無しさん (ワッチョイ 037b-gmgt)
2017/02/04(土) 23:04:25.98ID:NOwV5iNI0コマンドプロンプトでgccが使えません。
なぜでしょうか?
参照先のフォルダにgcc.exeが存在していることは確認済みで、
C:\MinGW\bin\gccでやると使えます。
0677デフォルトの名無しさん (ワッチョイ cf7b-gPBI)
2017/02/04(土) 23:14:44.21ID:ognvNw6b0$env:Path.split(";")
とすると、MinGWの行は、どう表示される?
0678デフォルトの名無しさん (ワッチョイ 037b-gmgt)
2017/02/04(土) 23:25:22.10ID:NOwV5iNI0と表示されます
0679デフォルトの名無しさん (ワッチョイ 937b-IpSN)
2017/02/04(土) 23:35:22.43ID:EkYaUQh20C:\MinGW\bin\gcc.exe --version
とフルパス実行してみて動くならpathの設定ミス
動かないならパッケージのミス(x32osなのにx64バイナリ入れたとか)
0680デフォルトの名無しさん (ワッチョイ 0f48-nOPp)
2017/02/04(土) 23:37:20.61ID:xXpQSLfH00681デフォルトの名無しさん (ワッチョイ 937b-IpSN)
2017/02/04(土) 23:42:27.94ID:EkYaUQh20てことはpathの間違いだろう
echo %path%
の出力を張り付ければすぐにわかるよ
0682デフォルトの名無しさん (ワッチョイ 037b-gmgt)
2017/02/04(土) 23:57:30.71ID:NOwV5iNI0パスは参照元のを張っていたので間違いはないと思うのですが。
環境変数に
C:\MinGW\bin
で設定していたのですが、
大文字のCではなく小文字のcで設定すると
パスが通る用になりました。
回答してくださった方ありがとうございます。
0683デフォルトの名無しさん (ワッチョイ 7f17-yene)
2017/02/05(日) 00:18:30.63ID:rbq9sUhf0Bash on Ubuntu on Windowsがあるよ
0684デフォルトの名無しさん (ワッチョイ 43da-3F/E)
2017/02/05(日) 05:19:00.64ID:dW6Jwq6000685デフォルトの名無しさん (JP 0H9f-0MWP)
2017/02/05(日) 09:19:04.10ID:XPcm+oNTH2 352
3 297
1 392
超初心者です
出席番号と、合計点を入力し
出席番号を1、2、3、4、って順番に並び替えたいんですけど
どうすればいい?
0686デフォルトの名無しさん (ワッチョイ 7f90-CXHw)
2017/02/05(日) 09:38:46.80ID:oILHhlOU00687デフォルトの名無しさん (ワッチョイ a33b-NQew)
2017/02/05(日) 09:56:21.45ID:WXUl8JUq00688デフォルトの名無しさん (ワッチョイ d3dc-0e9Z)
2017/02/05(日) 10:50:45.88ID:gNgZtC6x0その構造体の配列にデータを格納。
構造体の出席番号部分で比較する関数を用意して
qsort() に配列と要素数とsizeof(構造体)と比較関数を渡す。
というのが標準的なやり方かと思うが、
上の説明の各行に初心者が越えなきゃいけないハードルがあるな。
0689デフォルトの名無しさん (ワッチョイ 7f7c-0MWP)
2017/02/05(日) 15:54:34.59ID:Lh5FAZTD0int型の-1とかで初期化された配列作って埋めていけば良さそうだが...
0690デフォルトの名無しさん (ワッチョイ 7f5b-PzOe)
2017/02/05(日) 16:12:21.34ID:do2rVInt00691デフォルトの名無しさん (ワッチョイ cf42-yene)
2017/02/05(日) 16:17:51.28ID:z02c26Xt00692デフォルトの名無しさん (JP 0H9f-0MWP)
2017/02/06(月) 11:14:28.30ID:bjG4OUXsHint b[a];
こういう書き方できますか?
0693デフォルトの名無しさん (ワッチョイ cf42-yene)
2017/02/06(月) 11:29:09.63ID:k/JawEEi00694デフォルトの名無しさん (ワッチョイ d3dc-0e9Z)
2017/02/06(月) 11:38:13.31ID:GvVdGH4O0配列のサイズを実行時に決定したいってことならC99から可能らしい。
0695デフォルトの名無しさん (ワッチョイ 7f7c-yene)
2017/02/06(月) 11:51:33.96ID:JXB1LvVi0int *b = ( int * ) malloc ( sizeof( int ) * a );
0696デフォルトの名無しさん (ワッチョイ cf4f-0MWP)
2017/02/06(月) 12:02:07.90ID:Qt2MHonn0(alloca が標準関数だったら・・・)
0697デフォルトの名無しさん (ワントンキン MM1f-nOPp)
2017/02/06(月) 12:30:56.36ID:yz/cpsC+M全部自分で書くなら
一番小さい番号探して別の配列または構造体の配列に格納
これをなくなるまで繰り返す
0698デフォルトの名無しさん (ドコグロ MM67-ubpA)
2017/02/06(月) 12:53:24.21ID:dJHmfPXIMallocaも関数の終わりまで解放しないような
0699デフォルトの名無しさん (ワッチョイ cf4f-0MWP)
2017/02/06(月) 13:02:54.62ID:Qt2MHonn0関数から戻るときに開放だっけ? < alloca
それだと、スコープ抜けたらとは条件が違うか…
大筋それで用途には足るかもだけど
0700デフォルトの名無しさん (アウアウカー Sae7-6l7O)
2017/02/06(月) 18:47:52.11ID:Seg8MMVDaC11からはオプションになったけど
0701デフォルトの名無しさん (フリッテル MMff-pooc)
2017/02/06(月) 19:26:22.74ID:vAgxY/wKM0702デフォルトの名無しさん (ワッチョイ 934e-OQSM)
2017/02/06(月) 19:28:41.35ID:XMdY3knv00703デフォルトの名無しさん (ドコグロ MMff-C4Pq)
2017/02/06(月) 21:11:33.00ID:VJg+IRhiMプログラム終了直前は free しなくてうんたらかんたら
0704デフォルトの名無しさん (ワッチョイ 7f17-yene)
2017/02/07(火) 01:47:20.09ID:ldurXorh0それはOSの機能でCとは関係なし
0705デフォルトの名無しさん (ワッチョイ a37b-0yxR)
2017/02/07(火) 05:43:33.18ID:NKjx6bYj0それを期待してatexitで登録された関数なども呼ばずに即時終了する_Exitも標準にあるから関係ないとまでは言えない
0706デフォルトの名無しさん (ワッチョイ 6f81-0MWP)
2017/02/07(火) 06:52:42.31ID:Z7Y+uPLQ00707デフォルトの名無しさん (ワッチョイ 137b-9MYa)
2017/02/07(火) 07:08:38.53ID:GEzg1MU700708デフォルトの名無しさん (ワッチョイ 6f13-0MWP)
2017/02/07(火) 07:14:47.25ID:+h4n1yps0使い方による,貼ってみろ
0709デフォルトの名無しさん (ワッチョイ 037b-AtEE)
2017/02/07(火) 07:58:13.35ID:JROyZiNP0知ったかぶり ミトモない
0710デフォルトの名無しさん (JP 0Hc7-AGuT)
2017/02/07(火) 09:42:56.01ID:IHNU1ydFHセットにしては"いけない"例を出せ
0711デフォルトの名無しさん (ワッチョイ cf31-zFB8)
2017/02/07(火) 10:58:16.15ID:A4fl6xaP0皆はどうしてるの?専用ソフトとか使ってる?
0712デフォルトの名無しさん (ワッチョイ 0399-AtEE)
2017/02/07(火) 11:40:30.83ID:PGzD/t/t0しなくても良い
してはいけない
区別が出来ないバカは死んだ方が良い
0713デフォルトの名無しさん (JP 0Hc7-AGuT)
2017/02/07(火) 12:19:46.30ID:IHNU1ydFHnot stack, but stuck
0714デフォルトの名無しさん (ドコグロ MM7f-C4Pq)
2017/02/07(火) 12:44:20.83ID:ff698yUfMmalloc and free netnews
辺りでググってから出直してこい
0715デフォルトの名無しさん (ワッチョイ 6f4d-qds7)
2017/02/07(火) 20:26:54.41ID:TrR1IRB40C言語のポインタでよくつまずくときくけど、アセンブラを先にやっとけばポインタでつまずくことないって、本当?
0716デフォルトの名無しさん (ワッチョイ 3342-wVGn)
2017/02/07(火) 20:33:40.04ID:ZZufsVw200717デフォルトの名無しさん (ワッチョイ c37b-pWqG)
2017/02/07(火) 20:53:23.38ID:1VeBPI3R08085 のアセンブラから c に移行した者ですが
MOV A,M は
A = *M; なので
ポインターの概念には苦労しませんでしたね
0718デフォルトの名無しさん (ワンミングク MM1f-PSyA)
2017/02/07(火) 20:59:44.97ID:cTLgA1N6M0719デフォルトの名無しさん (ワッチョイ 037b-AtEE)
2017/02/07(火) 21:07:47.54ID:JROyZiNP0つまずいた経験があるらしい>>716の経験談が聞きたい
0720デフォルトの名無しさん (ワッチョイ b36c-0MWP)
2017/02/07(火) 21:08:03.25ID:Q5k0Wut90都市伝説レベル
0721デフォルトの名無しさん (アウアウカー Sae7-aC2u)
2017/02/07(火) 21:15:28.38ID:z9Nfo4oVaアセンブラでもC言語でも共通して、メモリアドレスについて理解しなければ書けないってだけ
だからアセンブラが理解できてればポインタ(メモリアドレスに関係する)でつまずかないのはあたりまえ
普通はC言語からやったほうがいいと思うよ
アセンブラは実際に動かして楽しめるプログラムが書けるまでが長すぎる
0722デフォルトの名無しさん (ワッチョイ b3ee-z2sC)
2017/02/07(火) 21:39:21.18ID:p6Enp6MA0アセンブラが分かってればCのポインタは簡単に理解できるって話で、ポインタの理解はアセンブラの方がし易いって話ではない
初学者ならCからやればいいと思う
0723デフォルトの名無しさん (アウアウカー Sae7-aC2u)
2017/02/08(水) 09:03:15.79ID:5CFRofDQa両方同時にやればいいんじゃない?
0724デフォルトの名無しさん (ワッチョイ c319-1ST5)
2017/02/08(水) 11:02:59.02ID:T/lSiKkL0特に構造体関連で。
0725デフォルトの名無しさん (ワッチョイ 6f4d-qds7)
2017/02/08(水) 11:41:50.29ID:PF6smBxU0メモリアドレスの操作?仕組み?を理解するのに時間がかからないと思っていました
ここでポイントを押さえておいた上で、Cに入ったほうが効率的かなと思っていました。
0726デフォルトの名無しさん (ワッチョイ 7f5b-PzOe)
2017/02/08(水) 12:26:20.76ID:Pzm1o9Vt00727デフォルトの名無しさん (ドコグロ MM67-ubpA)
2017/02/08(水) 12:41:20.99ID:60qaxvBWMただ上で言いたいのはアセンブリ言語じゃなくて、プロセッサのアーキテクチャのことだと思う
0728デフォルトの名無しさん (ブーイモ MMc7-oriA)
2017/02/08(水) 12:44:26.94ID:KaMMl6/oM自称ベテラン社員に騙されていると思われ。
俺も>>722の意見に同意かな。
いきなりアセンブリ言語を理解出来る素養があるなら、Cのポインタなんて簡単に理解出来るなら心配するな。
0729デフォルトの名無しさん (ワントンキン MM1f-nOPp)
2017/02/08(水) 20:23:31.80ID:4jVc/9XqMCやるのに役立ったかというとそうでもない
わかるやつは両方わかる
Cしか知らなくても困ることはない
そしてCが使いこなせる頃にはどんな言語でもすんなり入れる
0730デフォルトの名無しさん (ワントンキン MM1f-nOPp)
2017/02/08(水) 20:24:56.95ID:4jVc/9XqMCに限らず
センスが全て
0731デフォルトの名無しさん (ワッチョイ 037b-AtEE)
2017/02/08(水) 21:20:27.35ID:OCW6swXT0一定の知能を持っていれば普通に習得できる
0732デフォルトの名無しさん (ドコグロ MM87-0Ly4)
2017/02/08(水) 21:37:39.02ID:1HPstVT8M0733デフォルトの名無しさん (ワンミングク MM1f-PSyA)
2017/02/08(水) 22:45:04.97ID:I+micAQkMASMの知識が邪魔になった事は無いな
0734デフォルトの名無しさん (ワッチョイ 365b-a31+)
2017/02/09(木) 22:43:28.90ID:18LIUJ/70C++無理。
0735デフォルトの名無しさん (ワッチョイ 12c0-1VpQ)
2017/02/09(木) 23:05:05.32ID:fEK+ghC300736デフォルトの名無しさん (ワッチョイ 9bfd-ENO3)
2017/02/10(金) 01:43:40.17ID:7WDeOmY50----------------------------------------------------------------------
int data[3][3][4] =
{{{111,112,113,114},{121,122,123,124},{131,132,133,134}},
{{211,212,213,214},{221,222,223,224},{231,232,233,234}},
{{311,312,313,314},{321,322,323,324},{331,332,333,334}}};
int *pa = data[0][0];
int (*pb)[4] = data[0];
int (*pc)[3][4] = data;
int *pd[3]; pd[0] = data[0][0]; pd[1] = data[1][0]; pd[2] = data[2][0];
上記のように配列(data)とポインタ(pa, pb, pc, pd)を宣言した時、
(1) data[0][0][0]とdata[2][2][3]をポインタ pa, pb, pc のそれぞれを用いて記述せよ
(2) 同様に、ポインタ配列 pd を用いて記述する場合の一例を示せ
----------------------------------------------------------------------
アホな専門学校生です。
ちょうどポインタの総まとめ復習をやってるんだけど、さっっっぱり解らん (´・ω・`)
こんな3次元配列とポインタの組み合わせなんて、実際には滅多に使わないでしょ?
0737デフォルトの名無しさん (ワッチョイ 277b-VpYz)
2017/02/10(金) 04:19:15.76ID:MRcACxyw00738デフォルトの名無しさん (ワッチョイ b37b-cWHS)
2017/02/10(金) 06:03:19.35ID:jzO6JR0y0fprintf(stdout, "%d %d\n", *(pa + 0), *(pa + 35));
fprintf(stdout, "%d %d\n", *(*(pb + 0) + 0), *(*(pb + 8) + 3));
fprintf(stdout, "%d %d\n", *(*(*(pc + 0) + 0) + 0), *(*(*(pc + 2) + 2) + 3));
fprintf(stdout, "%d %d\n", *(pd[0] + 0), *(pd[2] + 11));
こんな感じの回答を期待した問題なのかな
+0は冗長でもあったほうが理解しやすいかと思って入れておいた
いずれにしろわざわざ配列へのポインタ使ってただ面倒なだけであまりいい設問とは思えない
0739デフォルトの名無しさん (ワッチョイ 83dc-w/2a)
2017/02/10(金) 08:05:16.01ID:VdPSphbn0多次元配列だと先頭要素(==ポインタの指す対象)の型は何? て部分がややこしいんで
こういう問題を作って理解を深めさせる、という意図は分かるんだが、
実際には滅多に使わないね。
多次元配列とポインタの関係が面倒なんで多次元配列を使うのを避ける
という面もあるかもしれんけど。
0740デフォルトの名無しさん (ドコグロ MM0f-o+a8)
2017/02/10(金) 11:27:20.88ID:yPTk9ivWMちょっと微妙な問題だと思うけど、期待する回答はこんな感じでは
printf("%d %d\n", pa[0], pa[35]);
printf("%d %d\n", (pb[0])[0], (pb[8])[3]);
printf("%d %d\n", (pc[0])[0][0], (pc[2])[2][3]);
0741デフォルトの名無しさん (ワッチョイ 727c-CIv3)
2017/02/10(金) 12:03:42.38ID:lKa0cLZB0pa[35]でも問題ないんかいの?
0742デフォルトの名無しさん (JP 0Hbf-ONvP)
2017/02/10(金) 12:28:12.40ID:mjSR9lfmHによると、
・連続するとは明示されていない
が、
・配列のsizeofは配列全体のサイズ
・配列の要素数を、sizeof 配列 / sizeof 要素 で求める例示がある
から演繹すると、パディングを入れる余地がないので、連続する実装しかできない
らしい
0743デフォルトの名無しさん (ドコグロ MM0f-o+a8)
2017/02/10(金) 12:31:08.37ID:yPTk9ivWMそもそも連続しないなら問題が成立しない
0744736 (ワッチョイ 9bfd-ENO3)
2017/02/10(金) 17:01:41.36ID:7WDeOmY50どうもご親切に有難うございました。これらを参考に、配列へのポインタの
基本に戻って一つ一つ確認していったら、何とか理解出来ました。
学校の若い新任講師の方はヤル気満々で張り切って色々教えてくれるのは
有難いんですが、テキストや市販の解説本には載ってないような所まで踏み込む
ことが多いので、みんな疲れ気味ですw
「君ら、ここを超えたら楽になるぞぉ!」が口癖なんですが、もう20回くらい
その「ここ」が出てきますた w
0745デフォルトの名無しさん (ワッチョイ b37b-cWHS)
2017/02/11(土) 11:41:49.45ID:5YmzaeQg0fgets()の第2引数はどうしてsignedなのか
1文字も読み込まない指定は0で事足りるはずだが
読み込む文字数に負数を与えるなどという発想はどこから来たのか
もしかして適当に作ったの?実際gets_s()ではunsignedになってるし
0746デフォルトの名無しさん (ワッチョイ a73b-y12Z)
2017/02/11(土) 13:27:24.67ID:6EGYaUFO0キャラクターコードに負数を与えるなどという発想はどこから来たのか
0747デフォルトの名無しさん (ワッチョイ 7642-CIv3)
2017/02/11(土) 13:41:09.00ID:XP9IRm+400748デフォルトの名無しさん (ワッチョイ df85-phNF)
2017/02/11(土) 14:50:34.52ID:Wyt6P4G00まあ、size_t あたりが適当かもしれないね
0749デフォルトの名無しさん (ドコグロ MMc7-y12Z)
2017/02/11(土) 17:37:03.93ID:nokJxoQMM自己レスだけど、char 型は 8bit でもないし、signed かどうかは実装依存らしい。
0750デフォルトの名無しさん (アウアウカー Sa1f-adpx)
2017/02/12(日) 00:29:59.89ID:ljRDyKT6a実行基本文字集合はcharに入れても非負であることが、規格で決まってるからだろ
拡張文字が負数になるのが嫌なら、処理系で勝手にやれ
0751デフォルトの名無しさん (ワッチョイ 12e1-2uTt)
2017/02/12(日) 03:48:52.18ID:Lo3A968W0getsが存在してる地点でc言語の標準ライブラリなんて適当に決まってるだろ
intが1byteの処理系でもなければ困ることはないし
0752デフォルトの名無しさん (ワッチョイ 0f6f-rlq7)
2017/02/12(日) 10:27:52.66ID:nF2JpTw90fgetsはn-1バイト読む仕様だからunsignedだと問題となるからかな
0753デフォルトの名無しさん (ワッチョイ a73b-y12Z)
2017/02/12(日) 10:28:20.07ID:DnVqAvNl0byte は char と同じサイズだけど、何ビットか決まってないよね。
0754デフォルトの名無しさん (ワッチョイ fe13-cGUq)
2017/02/12(日) 10:32:14.10ID:XNCDxJ480え?具体的にどんな問題になるの?
0755デフォルトの名無しさん (ワッチョイ 277b-VpYz)
2017/02/12(日) 10:32:20.61ID:MRPxQTsD00756デフォルトの名無しさん (ワッチョイ 0f6f-rlq7)
2017/02/12(日) 11:03:45.39ID:nF2JpTw90n=0のとき、アンダーフローしてラップアラウンドすると例えば0xffffffffバイトまで書けちゃうから
0757デフォルトの名無しさん (ワッチョイ 727c-CIv3)
2017/02/12(日) 12:11:29.38ID:uTIQ0BBX0関数の実装をちゃんと見ろっていうね
0758デフォルトの名無しさん (ワンミングク MM62-zyyT)
2017/02/12(日) 14:21:53.64ID:3c2vZijwM0759デフォルトの名無しさん (ワッチョイ 327d-E76/)
2017/02/12(日) 15:37:31.50ID:xAcvDrFg0記憶容量も4096ワードとか云っていた。
私が大学で使った〔1961年頃)HITACHのHIPAC-101という
パラメトロン素子を使ったコンピュータは、1短ワードが、21ビッ、で 8192ワード、
1長ワードは、41ビットで、4096ワードでした。どちらも、先頭の1ビットは
符号ビットです。
たしか、CDC-3600は、1ワードが64ビットでなかったかと思います。..
0760デフォルトの名無しさん (ワッチョイ 277b-VpYz)
2017/02/12(日) 16:25:36.88ID:MRPxQTsD0そんな化石を考慮するとか時間の無駄
0761デフォルトの名無しさん (ワッチョイ 323c-zlRv)
2017/02/12(日) 18:23:32.93ID:yxF5W3i10ちょっとまともな実装ならサイズのチェック入れて 0 以下なら NULL 返してる
0762デフォルトの名無しさん (ワッチョイ 325b-9+3L)
2017/02/12(日) 18:56:08.07ID:PBdTcC4F00763デフォルトの名無しさん (ワッチョイ 367b-F1sY)
2017/02/12(日) 22:38:58.16ID:9zSa05ws00764デフォルトの名無しさん (ワッチョイ a73b-y12Z)
2017/02/12(日) 23:24:35.30ID:DnVqAvNl0規格で決まってないから悪いんだけどね。
実装依存言うからコンパイラの説明書に書いてあるんじゃね?
0765デフォルトの名無しさん (アウアウカー Sa1f-adpx)
2017/02/12(日) 23:36:22.07ID:M7O5WewRaCHAR_BITは処理系定義だから、規格上は処理系には文書化する義務がある
0766デフォルトの名無しさん (ワッチョイ 277b-VpYz)
2017/02/12(日) 23:41:11.55ID:MRPxQTsD0今まで書いたある程度の規模の普通のCのプログラムで8bit以外でも動くといえる奴居るのか?無いだろ?
int8_t使ってるからバッチリだ?それ実装するかどうかは処理系依存だから。int8_tをパディング無しで実装できるなら最初からcharを8bit以外になんてしねえよ。
0767デフォルトの名無しさん (ワッチョイ 12c0-1VpQ)
2017/02/13(月) 07:34:20.16ID:XzL9GDXP00768デフォルトの名無しさん (ワッチョイ d37b-Dnc6)
2017/02/13(月) 09:02:24.85ID:TFV2uoJG00769デフォルトの名無しさん (JP 0H72-cGUq)
2017/02/13(月) 11:55:17.52ID:Qx76ZGdPHjuni_t[kensu]=1 て、どういう意味ですか?
0770デフォルトの名無しさん (ドコグロ MM8a-o+a8)
2017/02/13(月) 12:35:20.50ID:pV7Y/oW+M0771デフォルトの名無しさん (ワッチョイ fe13-cGUq)
2017/02/13(月) 21:02:56.35ID:347RyUJ/0規格はどうなっている?規格がすべてだ.お前の思い込みなど犬にくわれてしまえ
ISO/IEC 9899:1999 5.2.4.2.1 Sizes of integer types <limits.h>
Their implementation-defined values shall be equal or greater in magnitude
(absolute value) to those shown, with the same sign.
? number of bits for smallest object that is not a bit-field (byte)
CHAR_BIT 8
8ビット以上であっても問題ない
0772デフォルトの名無しさん (ワッチョイ 277b-VpYz)
2017/02/13(月) 21:25:44.28ID:XAOuYKtl0だから何?規格上許されてる事は知ってるよ。その上でそれ向けでもないのにそれを考慮して
プログラムを書くことは時間の無駄と言ってる。
0773デフォルトの名無しさん (ワッチョイ 8375-eSCi)
2017/02/13(月) 21:31:33.31ID:3cGA2sF00>int8_tをパディング無しで実装できるなら最初からcharを8bit以外になんてしねえよ。
どういう意味?
int8_tをパディング有りだと実装できるの?そんな実装あり得ないから。
0774デフォルトの名無しさん (ワッチョイ 83dc-w/2a)
2017/02/13(月) 21:38:40.52ID:vJYKnMsc0配列名 juni_t はおそらく「順位のテーブル」の気持ちだろう。
正しい順位は後で(全員の点数の情報が集まった時点で)確定するとして、
とりあえず1位という仮の順位を入れてる。
なぜ仮の順位として1を入れるか?
それは2重のforループがそういう仕掛けになってるから。
0775デフォルトの名無しさん (ワッチョイ 277b-VpYz)
2017/02/13(月) 21:49:40.18ID:XAOuYKtl0そんな回りくどい言い方しなくても、int8_t自体パディング入ることが許されてないから冗長とでも言えばいいのに
0776デフォルトの名無しさん (ワッチョイ 0f19-ENO3)
2017/02/14(火) 15:51:45.18ID:V3vYuU1u0「最新規格では出来るから出来ないと言うのは間違い!」
うぜぇ…。
0777デフォルトの名無しさん (JP 0H72-cGUq)
2017/02/14(火) 15:57:28.57ID:yB/Qg5nmHchar cnt[10];
scanf("%d", &n);
while(n > 0){
scanf("%s", &cnt[n]);
n--;
}
while(n > 0){
printf("%s!\n", &cnt[n]);
n--;
}
return 0;
これどうすればいい?
2
Hello
Hello
こうしたいだけです
0778デフォルトの名無しさん (フリッテル MM4e-0t/q)
2017/02/14(火) 17:08:52.14ID:nPLzkrM8Mとりあえず
X:scanf("%s", &cnt[n]);
O:scanf("%c", &cnt[n]);
じゃなかろうかと
0779デフォルトの名無しさん (ワッチョイ 9f8c-CIv3)
2017/02/14(火) 19:27:17.09ID:YTgNi2GY0char msg[80];
printf("Input number: ");
scanf("%d", &num);
printf("Input message: ");
scanf("%s", msg);
printf("***Output***\n");
printf("%d\n", num);
for (i = 0; i < num; i++)
printf("%s\n", msg);
return 0;
0780デフォルトの名無しさん (ワッチョイ ef3c-cGUq)
2017/02/14(火) 19:29:41.95ID:LarrsDUP00781デフォルトの名無しさん (ワッチョイ a717-/ZxI)
2017/02/14(火) 21:07:20.19ID:lbXIx+/s0ttp://stdput.com/dat/program/stdin.zip
0782デフォルトの名無しさん (JP 0H72-cGUq)
2017/02/15(水) 10:49:47.58ID:x30SJT5YH0783デフォルトの名無しさん (ブーイモ MM4b-rAfO)
2017/02/15(水) 11:17:08.06ID:VIlp91RXM0784デフォルトの名無しさん (ワッチョイ efd4-IbQK)
2017/02/15(水) 12:04:09.11ID:THR1BzY100785デフォルトの名無しさん (フリッテル MM4e-0t/q)
2017/02/15(水) 12:47:35.60ID:Zq/eSbT+M0786デフォルトの名無しさん (ワッチョイ 325b-9+3L)
2017/02/15(水) 12:50:34.25ID:wlqCSLaa00787デフォルトの名無しさん (ワッチョイ b34e-K2za)
2017/02/15(水) 13:09:00.67ID:Nh3it6Lz00788デフォルトの名無しさん (フリッテル MM4e-0t/q)
2017/02/15(水) 14:51:08.46ID:p38yo1PrM定数を変数に代入なら出来る
最近のCだと定数宣言と同時の代入に限って
変数を定数に代入なら出来る
0789デフォルトの名無しさん (ワッチョイ cf48-QAjE)
2017/02/16(木) 04:18:45.40ID:AD6yJS9r0日本語的にそのとらえかたも凄いな
0790デフォルトの名無しさん (ガラプー KK9f-jCT1)
2017/02/16(木) 12:54:12.44ID:NXvZoMniKScanfはしらんが
0791デフォルトの名無しさん (JP 0H7f-eq+O)
2017/02/16(木) 14:30:19.98ID:QZUL27n8Hどういう時に使うの?
0792デフォルトの名無しさん (フリッテル MMff-SEkl)
2017/02/16(木) 14:30:47.28ID:2GiI1VjxMそれ以外の何でもないよ
0793片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK9f-2nU5)
2017/02/16(木) 14:41:22.10ID:soSRPnhwKenumは列挙型を意味する。名前付き定数をまとめたもの。
0794デフォルトの名無しさん (ドコグロ MM7f-+HG0)
2017/02/16(木) 14:41:44.66ID:BwNR8qwBMint scanf; は出来ないの?
0795デフォルトの名無しさん (フリッテル MMff-LjcY)
2017/02/16(木) 17:37:49.55ID:QlMPrb5UM0796デフォルトの名無しさん (ドコグロ MM9f-/Y6J)
2017/02/16(木) 18:16:20.41ID:54UL787NMC言語だよね。例えばどういう場合?
0797デフォルトの名無しさん (フリッテル MMff-SEkl)
2017/02/16(木) 18:29:02.02ID:jxTm1qP3Mだからintとenumの区別は実質人の目視でじゃないと区別できなかったと思ったけど
0798デフォルトの名無しさん (JP 0H1f-vlft)
2017/02/16(木) 19:24:44.49ID:hXFmZ55QHデバッガ側のサポートレベルにもよるのかな
0799デフォルトの名無しさん (ササクッテロレ Sp9f-89cz)
2017/02/16(木) 19:37:28.36ID:VWTLMYuEp0800デフォルトの名無しさん (JP 0H9f-88IT)
2017/02/16(木) 19:51:52.57ID:jO2RAfrNH課題乙
0801デフォルトの名無しさん (ワッチョイ 5b3c-eq+O)
2017/02/16(木) 19:57:33.63ID:JWmhnLgw0インターフェイスがそう要求しているから(そして、qsortを実装するなら そうせざるを得ないから)
0802デフォルトの名無しさん (ドコグロ MM9f-My/j)
2017/02/16(木) 20:04:25.41ID:+lEx52V9Mスコープ違うなら普通にできるでしょ
0803デフォルトの名無しさん (ワッチョイ cbe3-WWha)
2017/02/16(木) 20:13:58.84ID:Jbe8pVua00804片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK9f-2nU5)
2017/02/16(木) 20:18:35.62ID:soSRPnhwK広辞苑に載っている単語でしりとりができるプログラムなんてどうだい?
0805片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK9f-2nU5)
2017/02/16(木) 20:23:24.18ID:soSRPnhwK0806デフォルトの名無しさん (ワッチョイ fb42-P9CU)
2017/02/16(木) 20:30:02.28ID:33Tn7KWx00807デフォルトの名無しさん (ワッチョイ 6f13-eq+O)
2017/02/16(木) 20:31:11.01ID:DJC3UylG0コンパイラはつくってみたいな,と思ってる
0808デフォルトの名無しさん (アウアウカー Sa9f-67jm)
2017/02/16(木) 20:43:45.58ID:IVFumkCMaenumはシンボルが残せるからね
defineだとプリプロセッサで置換されて、ただの整数定数になるから、同じ値で意味の異なる定数の区別がつかない
実際に役立ったことはないけど
0809デフォルトの名無しさん (ワンミングク MM7f-EdSj)
2017/02/16(木) 21:53:58.91ID:vUbaJs50Mスクリーンエディタ
0810デフォルトの名無しさん (ワッチョイ 5f17-P9CU)
2017/02/16(木) 21:59:14.27ID:+OCSH22k0デバイスドライバ
0811デフォルトの名無しさん (ワッチョイ 4fcb-4ADt)
2017/02/16(木) 22:11:12.78ID:u2+nKOoP0795です。すみませんC++の挙動だった模様・・・
enum dir { front, back, left, right };
enum dir_news { north, east, west, south };
void move(enum dir d) { }
void move_news(enum dir_news news) { }
int main()
{
move(back); /* OK */
move_news(back); /* gccではOK、g++ではエラー */
return 0;
}
0812デフォルトの名無しさん (ワッチョイ cbe3-WWha)
2017/02/16(木) 23:34:52.68ID:Jbe8pVua0ふむふむ、
それって広辞苑に載ってる単語全てプログラムに書き込む必要がある訳じゃないよね?
>>809
>>810
ごめん。専門用語全然わからん。
0813デフォルトの名無しさん (ワッチョイ 5f17-P9CU)
2017/02/17(金) 00:33:04.79ID:aZqDCFlW0双方向チェーンリストで追加、挿入、削除が実装できたら
初歩中の初歩としてなら、とりあえず「出来る」といっても良いんではないか
0814デフォルトの名無しさん (ワッチョイ 5f3c-Scgb)
2017/02/17(金) 00:53:51.69ID:BlebXdwz00815デフォルトの名無しさん (ブーイモ MM7f-88IT)
2017/02/17(金) 00:54:12.00ID:28DYmd6rM珠玉のプログラミングとかプログラミング作法あたりすらすら読めて、
そうそうそうだよねってほくそ笑むくらいになればいいと思うよ
0816デフォルトの名無しさん (ワッチョイ 6f5a-eq+O)
2017/02/17(金) 00:58:36.02ID:FTwAMdJ10最近Cなんてなんであんなに悪戦苦闘して学んだのかわからなくなった。
仕事で組み込みいじる以外Cなんて今更だし・・・
0817デフォルトの名無しさん (ドコグロ MM9f-My/j)
2017/02/17(金) 07:02:56.84ID:loItl+7kM> 珠玉のプログラミングとかプログラミング作法あたりすらすら読めて、
> そうそうそうだよねってほくそ笑むくらいになればいいと思うよ
言いたいことはすごくわかるが、C言語ができるって言うのとはちょっと違う気がする
0818デフォルトの名無しさん (アウアウカー Sa9f-6x/Q)
2017/02/17(金) 07:19:33.42ID:UftE5YWRa0819デフォルトの名無しさん (ワッチョイ fb3b-+HG0)
2017/02/17(金) 07:55:06.06ID:G0DLbtSq0ライブリやらフレームワークやらが揃ってれば、API叩くだけだからな。
0820デフォルトの名無しさん (フリッテル MMff-SEkl)
2017/02/17(金) 09:46:59.40ID:IRfl8X9cMそうそう
Cはその元を作る言語
だからアルゴリズムや数学、
メモリやCPUの仕組みを理解してない奴には
Cは難しい
0821デフォルトの名無しさん (ワッチョイ fb7b-Mjmn)
2017/02/17(金) 09:56:10.97ID:ICuCz4ej0C使うのに数学とかいらんやろ
Cは環境作るのがひたすら面倒くさいだけ。
ライブラリは他の言語に負けず劣らず豊富だが、ビルド方法や配置がライブラリー毎に統一されてないので一つ一つ確認しなきゃならない面倒くさい。ああ、面倒くさい。
さらに環境によってもビルド方法が違う。一つ一つやってたら組み合わせ爆発起こすわ
0822デフォルトの名無しさん (ワンミングク MM7f-QAjE)
2017/02/17(金) 12:22:49.67ID:7Vd7dWR4Mめんどくささもだいぶ解消されるけどね
0823デフォルトの名無しさん (ドコグロ MM9f-My/j)
2017/02/17(金) 12:31:17.48ID:loItl+7kM0824デフォルトの名無しさん (ワンミングク MM7f-Mjmn)
2017/02/17(金) 14:33:34.58ID:6x4nDOQLM使うライブラリ全てCMakeに対応してるわけじゃなかろうに。
0825デフォルトの名無しさん (フリッテル MMff-SEkl)
2017/02/17(金) 15:17:44.43ID:IFIS8X9xMその事だよ
0826デフォルトの名無しさん (ワッチョイ 5fd4-OEnk)
2017/02/17(金) 19:56:15.06ID:2DyCKvxW0struct st_a { char c; int i; }; がある時、これを内包する構造体は
1) struct st_b { struct st_a a; } b; のように宣言していたのですが。
2) struct st_b { struct st_a; } b; でもコンパイルは通るみたいです。
メンバ変数は 1)の場合は b.a.c、2)の場合は b.c のようになるみたいですが、
2)の記述方法はC言語のルールに従ったものでしょうか? それとも、たまたまコンパイルが通っただけ?
0827デフォルトの名無しさん (ワッチョイ 5b3c-eq+O)
2017/02/17(金) 20:06:06.50ID:rC3nLHS900828デフォルトの名無しさん (ドコグロ MM9f-My/j)
2017/02/17(金) 20:14:20.85ID:loItl+7kMライブラリを作る話なのか使う話なのかはっきりしろよ...
0829デフォルトの名無しさん (ドコグロ MM9f-My/j)
2017/02/17(金) 20:15:55.94ID:loItl+7kM前方参照と見なされてるだけでしょ
仕様だし必要
0830デフォルトの名無しさん (ワッチョイ 5fd4-OEnk)
2017/02/17(金) 20:18:54.57ID:2DyCKvxW00831デフォルトの名無しさん (アウアウカー Sa9f-67jm)
2017/02/17(金) 20:42:50.63ID:Mg03M+Ccagcc,clangどちらも警告吐いたし、内部のメンバにはアクセスできなかった
処理系の独自拡張じゃねーの?
0832デフォルトの名無しさん (ワッチョイ 5fd4-OEnk)
2017/02/17(金) 20:56:05.81ID:2DyCKvxW0なるほど、実装依存ですか・・・。コンパイラは20年くらい前の古いもの(VC6等)です。
C言語の規格なのか、コンパイラ依存なのか、念のため知っておきたかったもので。
- - - - - - - - - - - - - - - - - -
もう1つ、構造体の入れ子に関する質問なのですが
struct st_a { char c; int i; }; があるとき、これを内包し、かつ「先頭のメンバ」とする構造体
struct st_b { struct st_a a; double d; } b; があるとき
外側の構造体(struct st_b)のインスタンス(?)b を、内側の構造体(struct st_a)に型変換した上で、
メンバ変数 c、i を参照しようとするような記述、すなわち
((struct st_a*)&b)->c、((struct st_a*)&b)->i
これらが、b.a.c、b.a.i と完全に一致することは、
C言語の仕様上、保証されているのでしょうか、それとも実装依存ですか?
0833デフォルトの名無しさん (ワンミングク MM7f-EdSj)
2017/02/17(金) 21:02:59.91ID:+cYNGtlMM0834デフォルトの名無しさん (アウアウカー Sa9f-67jm)
2017/02/17(金) 21:04:12.81ID:Mg03M+Ccaただし、最適化のために規格違反のメンバ順番入れ換えを行うコンパイラもあるらしいのと
お作法的に良いとは言えないから、多用するならcontairner_ofみたいなの実装した方が良いとは思う
0835デフォルトの名無しさん (アウアウカー Sa9f-67jm)
2017/02/17(金) 21:15:42.69ID:Mg03M+Ccast_bからst_aに変換するときはちゃんとメンバ経由でアクセスして、逆の時はcontainer_ofを使う
コンパイラ固定で流用もしないなら好きにすれば良いと思うけど
0836デフォルトの名無しさん (ワントンキン MM7f-Mjmn)
2017/02/17(金) 21:22:24.48ID:RXF3ogG3M>>821 読んだらどっちの話か自明だと思うのだが
0837デフォルトの名無しさん (ワッチョイ 5fd4-OEnk)
2017/02/17(金) 21:26:02.06ID:2DyCKvxW0情報ありがとうございます。ちょっと勉強してみます。
0838デフォルトの名無しさん (ワッチョイ 5f3c-My/j)
2017/02/17(金) 21:28:12.08ID:Qw3pRN/40で、どっちなの?
0839デフォルトの名無しさん (ワッチョイ 9b7b-KWkY)
2017/02/17(金) 21:41:51.92ID:Ivxuia8Y0ちげーよ
無名構造体って言うんだよ 10年ROMってろ
0840デフォルトの名無しさん (ワッチョイ 9b7b-KWkY)
2017/02/17(金) 22:10:21.92ID:Ivxuia8Y0正 匿名構造体
0841デフォルトの名無しさん (ワッチョイ dfc0-fRM8)
2017/02/17(金) 23:02:32.95ID:cMOBM5D+00842デフォルトの名無しさん (ワッチョイ 9b7b-KWkY)
2017/02/18(土) 02:37:05.42ID:tWz1Zv+W00843デフォルトの名無しさん (ワッチョイ 7ba1-sbgu)
2017/02/18(土) 12:22:47.58ID:Jfc71qpE0ポインタがあれば、むだなコピーをへらせる可能性があるぞ
他の言語は、むだなことやってる。だからでかいし、おそい
0844デフォルトの名無しさん (ワッチョイ 6f13-eq+O)
2017/02/18(土) 15:48:27.98ID:TYdbt8Dm0C には move セマンティクス はないでしょ?
0845デフォルトの名無しさん (ワッチョイ 5f3c-My/j)
2017/02/18(土) 18:32:43.13ID:52dA0McO0自分でやればいいだけ
0846デフォルトの名無しさん (ワッチョイ 9b7b-KWkY)
2017/02/18(土) 22:04:52.02ID:tWz1Zv+W0アホウ 他の言語は参照渡しだ
0847デフォルトの名無しさん (ワッチョイ 7ba1-vagz)
2017/02/18(土) 23:03:17.35ID:Jfc71qpE0むだにオブジェクトを生成してる
0848デフォルトの名無しさん (スププ Sd7f-Aztl)
2017/02/18(土) 23:06:47.41ID:YvJV55Qkd0849デフォルトの名無しさん (ワッチョイ 5f5b-NHlF)
2017/02/18(土) 23:09:44.21ID:GhmlKVYj01バイトずつ番地が与えられるのはコンピューターの決まりなんだ。
ポインタはその番地に直接アクセスできるわけだね。
これは使い方、特にアセンブラライクなイメージでプログラミングをする時には便利だね。
ポインタが有る事によって、C言語はアセンブラの役割も果たしていると言えるね。
0850デフォルトの名無しさん (ワッチョイ 9b7b-KWkY)
2017/02/18(土) 23:53:48.89ID:tWz1Zv+W00851デフォルトの名無しさん (ワッチョイ fb7b-Mjmn)
2017/02/18(土) 23:58:35.24ID:ytfDKNod0そんなケースではCでもコピーして新たに作ってるだろ
文字列を引数に取る関数の殆どがnull終端を要求してるんだから
0852デフォルトの名無しさん (ワッチョイ 0b7b-+OgX)
2017/02/19(日) 00:03:05.03ID:0M5Cx5qf0開始位置は良くても終端はどうする?
0853デフォルトの名無しさん (ワッチョイ 0b4e-N9BQ)
2017/02/19(日) 00:06:59.52ID:B60dHD4D00854デフォルトの名無しさん (スププ Sd7f-Aztl)
2017/02/19(日) 00:07:34.14ID:JRoh81o2d0855デフォルトの名無しさん (ワッチョイ 0b4e-N9BQ)
2017/02/19(日) 00:08:51.26ID:B60dHD4D0そういう事は普通やらないだろ
0856デフォルトの名無しさん (ワッチョイ 5f5b-NHlF)
2017/02/19(日) 00:10:38.15ID:EpgJz6zw0その番地にアクセスするのがポインタって事だな。
0857デフォルトの名無しさん (ワッチョイ fb7b-Mjmn)
2017/02/19(日) 00:14:50.90ID:Av0JmT9x0当たり前だけど長さも一緒に渡せば可能だよ。
C++ならstring_viewというのが今年標準に入る
0858デフォルトの名無しさん (ワッチョイ 9b7b-KWkY)
2017/02/19(日) 00:17:31.57ID:EFiaBPs90> 1バイトずつ番地が与えられるのはコンピューターの決まりなんだ。
0859デフォルトの名無しさん (ワッチョイ 0b7b-+OgX)
2017/02/19(日) 00:19:11.31ID:0M5Cx5qf00860デフォルトの名無しさん (ワッチョイ 5f90-88IT)
2017/02/19(日) 00:23:13.07ID:0+gPqcHf0ワードをバイトと呼べばいいだけだろ
0861デフォルトの名無しさん (ワッチョイ 0b4e-N9BQ)
2017/02/19(日) 00:24:23.86ID:B60dHD4D00862デフォルトの名無しさん (ワッチョイ 9b7b-KWkY)
2017/02/19(日) 00:38:00.57ID:EFiaBPs90頭の悪い奴の考えは意味不明過ぎる
0863デフォルトの名無しさん (ワンミングク MM7f-EdSj)
2017/02/19(日) 00:48:04.14ID:dh11yliXMアナログコンピューターはコンピューターに含まれないのですか?
0864デフォルトの名無しさん (ワッチョイ 5f5b-NHlF)
2017/02/19(日) 00:57:29.15ID:EpgJz6zw0昔のワードマシンやキャラクタマシンでのアドレスの付け方を説明せず、
すみませんでした。
コンピューターもいろんなコンピューターが有り、
アナログコンピューターなどの説明をせずにすみませんでした。
0865デフォルトの名無しさん (ワッチョイ 5f3c-My/j)
2017/02/19(日) 07:50:42.99ID:ngALvOwB0はたから見てても恥ずかしいからもうやめとけ
0866デフォルトの名無しさん (ワッチョイ cbdc-92cl)
2017/02/19(日) 08:12:56.62ID:bdyBF4EH0絡まれたツイてない人、に思えるけど。
0867デフォルトの名無しさん (ワッチョイ 5f3c-My/j)
2017/02/19(日) 08:49:45.75ID:ngALvOwB0って話だろ
0868デフォルトの名無しさん (ワッチョイ 9b7b-KWkY)
2017/02/19(日) 18:42:33.14ID:EFiaBPs90一文字が8bit未満ではC言語の要求を満たせないぞ
wikipediaより
キャラクタマシン(キャラクタ指向マシン)は、8ビット未満(多くの場合)のサイズの「キャラクタ」で文字を表現し(キャラクタ (コンピュータ)#初期のコンピュータを参照。以下「字」とする)、
主記憶が字単位でアドレス付けされている(キャラクタアドレッシング)か4字ないし6字程度を1ワードとしていて、(ワード単位の演算を得意とするワードマシンに対し)字単位の処理を得意とするコンピュータである。
0869デフォルトの名無しさん (ワッチョイ 5f5b-NHlF)
2017/02/19(日) 20:17:09.99ID:EpgJz6zw0に対してワードマシンもあるだろうって言ってんだろう?
だから番地はワードマシンならワードごと、キャラクタマシンならキャラクタごとに割り当てられる、って説明しろって事だろ?
キャラクタマシンはメジャーだろ。何で珍妙なんだよ
0870デフォルトの名無しさん (ワッチョイ 5f5b-NHlF)
2017/02/19(日) 20:36:56.95ID:EpgJz6zw0おまえがさ、
850 デフォルトの名無しさん (ワッチョイ 9b7b-KWkY) sage ▼ 2017/02/18(土) 23:53:48.89 ID:tWz1Zv+W0 [3回目]
ワードマシンを知らない小僧は引っ込んでろ
って言ったんだよな。
ワードマシンを知ってる人間が、何でキャラクタマシンが珍妙になるの。
0871デフォルトの名無しさん (ワッチョイ 9b7b-KWkY)
2017/02/19(日) 20:52:34.52ID:EFiaBPs90お前、自分がスゲー無知な上に読解力も欠如しているバカだと言う事を認識した方が良いぞ
キャラクタマシンなんか博物館にでも行かなきゃお目にかかれねーわ w
バイトマシン
https://ja.wikipedia.org/wiki/%E3%83%90%E3%82%A4%E3%83%88%E3%83%9E%E3%82%B7%E3%83%B3
バイトマシン(バイト指向マシン)とは、1バイト単位で主記憶にアドレス付けされた(バイトアドレッシングの)コンピュータのこと。1バイトは通常は8ビットである。
ワードマシン
https://ja.m.wikipedia.org/wiki/%E3%83%AF%E3%83%BC%E3%83%89%E3%83%9E%E3%82%B7%E3%83%B3
ワードマシン(ワード指向マシン)とは、メモリのアドレス付けがバイト(通常は8ビット)単位ではなく、12ビット、16ビット、36ビット等のワード単位で(ワードアドレッシング)、ワード単位の演算を得意とするコンピュータのこと。
キャラクタマシン
https://ja.m.wikipedia.org/wiki/%E3%82%AD%E3%83%A3%E3%83%A9%E3%82%AF%E3%82%BF%E3%83%9E%E3%82%B7%E3%83%B3
キャラクタマシン(キャラクタ指向マシン)は、8ビット未満(多くの場合)のサイズの「キャラクタ」で文字を表現し(キャラクタ (コンピュータ)#初期のコンピュータを参照。
以下「字」とする)、主記憶が字単位でアドレス付けされている(キャラクタアドレッシング)か4字ないし6字程度を1ワードとしていて、(ワード単位の演算を得意とするワードマシンに対し)字単位の処理を得意とするコンピュータである。
0872デフォルトの名無しさん (アウアウカー Sa9f-6x/Q)
2017/02/19(日) 21:04:07.17ID:on+xGxJYa0873デフォルトの名無しさん (ワッチョイ 5f5b-NHlF)
2017/02/19(日) 21:06:08.10ID:EpgJz6zw0キャラクタマシンが珍妙で博物館にでも行かないとお目にかかれないとか言うのは、
おかしいぞ。
絶対ワードマシンの時代も知らないだろつの。
0874デフォルトの名無しさん (ワッチョイ 5f3c-My/j)
2017/02/19(日) 21:46:15.24ID:ngALvOwB00875デフォルトの名無しさん (ワッチョイ 9b7b-KWkY)
2017/02/19(日) 21:54:21.75ID:EFiaBPs90ワードマシンなら博物館に行かずとも、今でも入手出来て遊べる
Digital Signal Processor通称 DSPって奴はワードマシンだ
バイトアドレッシング出来るDSPが存在する可能性は否定しない
0876デフォルトの名無しさん (ワッチョイ 5f5b-NHlF)
2017/02/19(日) 22:05:56.56ID:EpgJz6zw0に対してのワードマシンもあるだろうっておまえ言ってんだろ?
だったらバイトマシン以外の番地の付け方を説明もするなら、ワードマシンとキャラクタマシンの番地の付け方の説明もせんといかんだろう。
なんでそれでキャラクタマシンの番地の付け方を説明して、キャラクタマシンが珍妙になるの。
キャラクタマシンの番地の付け方を省くなら、バイトマシン前提でワードマシンの説明を省いてもよいだろ。
0877デフォルトの名無しさん (ワッチョイ 5f5b-NHlF)
2017/02/19(日) 22:12:05.56ID:EpgJz6zw0メジャーもメジャーだろ。
0878デフォルトの名無しさん (ブーイモ MM1f-VS2f)
2017/02/19(日) 22:13:24.27ID:Zg7CBD6QM昔のNECのコンピューターがそうだな。ビット数が少ないから
安く作れる。個人的にはCOBOL専用機だと思う。
0879デフォルトの名無しさん (アウアウカー Sa9f-Vuaq)
2017/02/19(日) 22:22:12.24ID:itkc0h94a0880デフォルトの名無しさん (ワッチョイ eb9a-XQTV)
2017/02/19(日) 22:22:37.73ID:qRKd/jmw00881デフォルトの名無しさん (ワッチョイ 9b7b-KWkY)
2017/02/19(日) 22:30:17.54ID:EFiaBPs90本当に呆れるくらいバカだな そんなに頭悪くて生きるの辛く無いか?
0882デフォルトの名無しさん (スププ Sd7f-Aztl)
2017/02/19(日) 22:35:17.66ID:5WEM4D2Ldもうやめろ
0883デフォルトの名無しさん (ワッチョイ 5f5b-NHlF)
2017/02/19(日) 22:43:39.75ID:EpgJz6zw0俺はバイトマシン以外の番地の付け方もちゃんと説明したよな。
ワードマシンもあるだろと言う突っ込みに、
バイトマシン・ワードマシン・キャラクタマシンの番地の付け方があるとな。
おまえは、なんでキャラクタマシンのアーキテクチャが珍妙なのか説明しろよ。
0884デフォルトの名無しさん (ワッチョイ 5fcf-Z7AI)
2017/02/19(日) 23:41:11.49ID:Tyy902Hw00885デフォルトの名無しさん (ワッチョイ fb3b-+HG0)
2017/02/19(日) 23:53:40.93ID:9X+TsKgl00886デフォルトの名無しさん (ワッチョイ 9b7b-3Ih/)
2017/02/20(月) 09:07:24.62ID:NnqcO0cq0> 俺はバイトマシン以外の番地の付け方もちゃんと説明したよな。
> 1バイトずつ番地が与えられるのはコンピューターの決まりなんだ。
という、無知丸出しのウソ発言に突っ込まれ、何度もみ言い逃れを
繰り返し、あがいた挙句に無理だと観念し、必死にググって
ピコーン そうだ! 他のは昔のコンピュータと言い逃れとようと愚かな
試みをしたけれど、やっぱりバカはバカでワードマシンが現役なのを
知らなかった上に、C言語の要求を満たせないキャラクタマシンとやら
を引っ張り出してきて、さらに墓穴を掘り下げただけ。
バカって本当にかわいそう
> おまえは、なんでキャラクタマシンのアーキテクチャが珍妙なのか説明しろよ。
まだわかんねーのバカだろ。本当にバカ。
博物館行かなきゃお目にかかれないアーキテクチャだからだよ。
バーカバーカバーカバーカ
大事なことなので四回言いました。
0887デフォルトの名無しさん (ブーイモ MM7f-VS2f)
2017/02/20(月) 09:17:56.07ID:Wwty+I+wM0888ほらよ (ワッチョイ 9b7b-KWkY)
2017/02/20(月) 09:19:28.08ID:NnqcO0cq0> 俺はバイトマシン以外の番地の付け方もちゃんと説明したよな。
> 1バイトずつ番地が与えられるのはコンピューターの決まりなんだ。
という、無知丸出しのウソ発言に突っ込まれ、何度もみ言い逃れを
繰り返し、あがいた挙句に無理だと観念し、必死にググって
ピコーン そうだ! 他のは昔のコンピュータと言い逃れとようと愚かな
試みをしたけれど、やっぱりバカはバカでワードマシンが現役なのを
知らなかった上に、C言語の要求を満たせないキャラクタマシンとやら
を引っ張り出してきて、さらに墓穴を掘り下げただけ。
バカって本当にかわいそう
> おまえは、なんでキャラクタマシンのアーキテクチャが珍妙なのか説明しろよ。
まだわかんねーのバカだろ。本当にバカ。
博物館行かなきゃお目にかかれないアーキテクチャだからだよ。
バーカバーカバーカバーカ
大事なことなので四回言いました。
0889デフォルトの名無しさん (ワッチョイ 9b7b-3Ih/)
2017/02/20(月) 09:49:38.16ID:NnqcO0cq0Wikipediaも日本語版しかないと言う謎定義
http://www.encyclopedia.com/computing/dictionaries-thesauruses-pictures-and-press-releases/variable-word-length-computer
によると
> It is then known as a character machine or byte machine respectively.
だそうなので、一部ではバイトマシンと同じ意味で使われ{る|ていた}のかもしれない
0890デフォルトの名無しさん (ワッチョイ 9b7b-3Ih/)
2017/02/20(月) 09:51:28.59ID:NnqcO0cq0と呼んだのなら、すでに説明済みなので
>>864
> 昔のワードマシンやキャラクタマシンでのアドレスの付け方を説明せず、
> すみませんでした。
は、矛盾してるし
>>869
日本語版Wikipediaにある定義の「キャラクタマシン」なら
> キャラクタマシンはメジャーだろ。何で珍妙なんだよ
は、さらにおかしい
バカって本当にかわいそうだな。
0891デフォルトの名無しさん (ワッチョイ 5f5b-NHlF)
2017/02/20(月) 10:10:11.29ID:6ExtSF9k00892デフォルトの名無しさん (ワッチョイ 5f5b-NHlF)
2017/02/20(月) 10:21:12.02ID:6ExtSF9k0キャラクタマシンが普及してたのくらいわかるだろ。
おまえ絶対病気だよ。
0893デフォルトの名無しさん (ワッチョイ fb7b-Mjmn)
2017/02/20(月) 10:39:53.97ID:8FjaGYLq00894デフォルトの名無しさん (スププ Sd7f-Aztl)
2017/02/20(月) 10:41:49.65ID:EsKjTg7qd0895デフォルトの名無しさん (ワッチョイ 5f5b-NHlF)
2017/02/20(月) 11:03:28.74ID:6ExtSF9k0番地はバイトマシン、ワードマシン、キャラクタマシンでの付け方があるって言っただけだよ。
それで終わりだろ。
何で今度はキャラクタマシンを持ち出すのはおかしいとか言うんだよ。
それならレアなワードマシンの説明とか要らないだろ。
0896デフォルトの名無しさん (ワッチョイ fb42-P9CU)
2017/02/20(月) 11:10:51.85ID:bs0C8KtQ0http://toro.2ch.net/test/read.cgi/tech/1363792124/
0897デフォルトの名無しさん (ワッチョイ 5f5b-NHlF)
2017/02/20(月) 12:00:43.22ID:6ExtSF9k08ビット未満でC言語が動かないって事が間違ってんだよ。
0898デフォルトの名無しさん (ワッチョイ 0f7b-LjcY)
2017/02/20(月) 12:35:56.62ID:I1WvFavI00899デフォルトの名無しさん (ワッチョイ 5f5b-NHlF)
2017/02/20(月) 12:42:19.48ID:6ExtSF9k00900デフォルトの名無しさん (ドコグロ MM1f-My/j)
2017/02/20(月) 18:48:19.32ID:7yJYF54kMPDP-11 は 16bit マシンでバイトアドレッシングが可能
6bit マシンで開発されていたら小文字を使うのが面倒だから
#INCLUDE <STDIO.H>
INT MAIN(){
PRINTF("HELLO WORLD\N";
RETURN 0;
}
ってなってたと思う
0901デフォルトの名無しさん (ワッチョイ 5f5b-NHlF)
2017/02/20(月) 19:34:01.34ID:6ExtSF9k0PDP-10まで6bitだろ?もちろん大文字だけだよ
0902デフォルトの名無しさん (ドコグロ MM1f-My/j)
2017/02/20(月) 19:49:06.03ID:7yJYF54kMそうだけど、それとC言語になんの関係があるんだ?
0903デフォルトの名無しさん (ワッチョイ 5f5b-NHlF)
2017/02/20(月) 19:52:24.57ID:6ExtSF9k0PDP10用のCコンパイラあるだろ?
0904デフォルトの名無しさん (ワッチョイ 9b7b-KWkY)
2017/02/20(月) 20:09:49.34ID:NnqcO0cq0> キャラクタマシンはメジャーだろ。何で珍妙なんだよ
博物館でしかお目にかかれないもののどこがメジャーなんだ?
0905デフォルトの名無しさん (ワッチョイ 5f5b-NHlF)
2017/02/20(月) 20:11:57.30ID:6ExtSF9k0おまえが珍妙なアーキテクチャって言ったんだろ?
アーキテクチャと現存数と関係ないだろ。
何を言ってるんだ
0906デフォルトの名無しさん (ワッチョイ 9b7b-KWkY)
2017/02/20(月) 20:21:04.09ID:NnqcO0cq0博物館でしかお目にかかれないから珍妙と評したんだが
キャラクタマシンがメジャーというソース出せよ
日本語版Wikipediaとオレが張ったもう一つにしか現れないて無いぞ
0907デフォルトの名無しさん (ワッチョイ 5f5b-NHlF)
2017/02/20(月) 20:26:34.85ID:6ExtSF9k0何を言ってるんだ。
キャラクタマシンとかコボル用でたくさん使われてたろ。
キャラクタマシンのアーキテクチャはメジャーだろっつの。
キャラクタマシンなんか有名だろっつの。おまえしらんのか。
何で事務処理用で普及してたキャラクタマシンのアーキテクチャがマイナーなんだよ。
アホかおまえ。珍妙ってなんだよ。
0908デフォルトの名無しさん (ワッチョイ 9b7b-KWkY)
2017/02/20(月) 20:28:41.67ID:NnqcO0cq0まーた無知振りまいてるのか? 救いようが無いな
pdp10が6ビットというのは純正OSがradix50という符号を使っていただけ
pdp10はバイトマシンだ
0909デフォルトの名無しさん (ワッチョイ 9b7b-KWkY)
2017/02/20(月) 20:32:27.99ID:NnqcO0cq0メジャーだとお前以外が言ってるソースは?
> アホかおまえ。珍妙ってなんだよ。
バカか? 意味も知らずに言いがかりつけてんのか?
珍にして妙だよ バーカ
0910デフォルトの名無しさん (ワッチョイ 5f5b-NHlF)
2017/02/20(月) 20:33:01.09ID:6ExtSF9k0おまえ何いってんの、池沼か。
0911デフォルトの名無しさん (ワッチョイ 5f5b-NHlF)
2017/02/20(月) 20:35:16.21ID:6ExtSF9k0おまえが好きなwikiで、キャラクタマシンのページ貼ってるだろ?
そこにキャラクタマシンは大ヒットしたって書いてるだろう。
なんでそれでマイナーなんだ?
0912デフォルトの名無しさん (ワッチョイ 9b7b-KWkY)
2017/02/20(月) 20:35:32.03ID:NnqcO0cq0ああ、バカにはわからないのか w
こりゃ「キャラクタマシン」理解して無いな w
0913デフォルトの名無しさん (ワッチョイ 9b7b-KWkY)
2017/02/20(月) 20:39:28.59ID:NnqcO0cq0> メインフレーム(現代のものではACOS-6)やミニコンピュータ(PDP-10など)の1ワード=36ビットのコンピュータにおいて、
> 文字コードをあらわすキャラクタを6ビットとし、36ビット=6キャラクタとして扱い、同時に6文字を処理するものがあった。
これ読んでpdp10はキャラクタマシン きりっ
バカ過ぎる w
0914デフォルトの名無しさん (ワッチョイ 5f5b-NHlF)
2017/02/20(月) 20:44:14.81ID:6ExtSF9k0pdp-10のCコンパイラも有るんだから、
C言語が8bit以上のマシンで無いと動かないってのはおかしいだろ。
pdp-10をいつキャラクタマシンって言ったよ。
NECの2200とかの事だろ。
>キャラクタマシンは、演算部分のハードウエア量が少なく済むので、コンピュータの価格を押さえることができ、各メーカともキャラクタマシンは大ヒットした。
>また、COBOL言語を処理するのにも適していた。日本のメーカではNECの2200シリーズ(Honeywell 200シリーズのノックダウン生産)が大ヒットした。
ってあるだろ?
おまえいってることおかしいよ。絶対病気だろ
0915デフォルトの名無しさん (ワッチョイ 5f5b-NHlF)
2017/02/20(月) 20:48:11.32ID:6ExtSF9k00916デフォルトの名無しさん (ワッチョイ 9b7b-KWkY)
2017/02/20(月) 20:50:35.06ID:NnqcO0cq0バイトアドレスでアクセスできた気がしてたけど特殊な命令らしい
pdp10はワードマシン
0917デフォルトの名無しさん (アウアウカー Sa9f-6x/Q)
2017/02/20(月) 20:51:00.97ID:Xjvxr8kEa0918デフォルトの名無しさん (ワッチョイ 5f5b-NHlF)
2017/02/20(月) 20:52:08.94ID:6ExtSF9k0メジャーとマイナーの意味を理解してない。
アーキテクチャの意味を理解してない。
一文字が8bit以上でないとCは動かないと思っている。
これどうしろっつの。
0919デフォルトの名無しさん (ワッチョイ 9b7b-KWkY)
2017/02/20(月) 20:54:36.49ID:NnqcO0cq0>pdp-10のCコンパイラも有るんだから、
>C言語が8bit以上のマシンで無いと動かないってのはおかしい
また無知晒してる バーカ バーカ
0920デフォルトの名無しさん (ワッチョイ 5f5b-NHlF)
2017/02/20(月) 20:58:09.65ID:6ExtSF9k0それで良いんだな?
0921デフォルトの名無しさん (ワッチョイ 9b7b-KWkY)
2017/02/20(月) 20:58:50.67ID:NnqcO0cq0>珍妙の意味を理解してない。
珍にして妙
博物館でしかお目にかかれないものをそう呼んだ それが何か?
>メジャーとマイナーの意味を理解してない。
お前以外がメジャーと言っているWikipedia日本語版以外のソースを出せ
>アーキテクチャの意味を理解してない。
メモリアドレッシングはアーキテクチャの重要な要素
>一文字が8bit以上でないとCは動かないと思っている。
C言語の規格書読んで出直せ
0922デフォルトの名無しさん (ワッチョイ 9b7b-KWkY)
2017/02/20(月) 20:59:37.85ID:NnqcO0cq0PDP10はワードマシンだからあるよ 全然矛盾しない
0923デフォルトの名無しさん (ワッチョイ 5f5b-NHlF)
2017/02/20(月) 21:00:05.07ID:6ExtSF9k0pdp10とかK&Rだろ
0924デフォルトの名無しさん (ワッチョイ 5f5b-NHlF)
2017/02/20(月) 21:04:10.64ID:6ExtSF9k00925デフォルトの名無しさん (アウアウカー Sa9f-Vuaq)
2017/02/20(月) 21:06:17.45ID:j7ytTgeza0926デフォルトの名無しさん (ワッチョイ 5f5b-NHlF)
2017/02/20(月) 21:07:21.45ID:6ExtSF9k00927デフォルトの名無しさん (ワッチョイ 5f5b-NHlF)
2017/02/20(月) 21:12:24.45ID:6ExtSF9k06の倍数だろ?
もうこれでやめるぞ俺は。
悪いこと言わないから病院行け
0928デフォルトの名無しさん (ワッチョイ 9b7b-KWkY)
2017/02/20(月) 21:12:49.14ID:NnqcO0cq0> 1バイトずつ番地が与えられるのはコンピューターの決まりなんだ。
決まりじゃ無いものを決まりと言い張ろうと無駄に足掻いてドツボにはまった道化
0929デフォルトの名無しさん (ワッチョイ 9b7b-KWkY)
2017/02/20(月) 21:18:43.85ID:NnqcO0cq00930デフォルトの名無しさん (ワッチョイ 5f5b-NHlF)
2017/02/20(月) 21:21:30.04ID:6ExtSF9k0ほらよ。これで本当に最後だぞ
0931デフォルトの名無しさん (スププ Sd7f-Aztl)
2017/02/20(月) 21:55:59.24ID:3AFYiP2ad0932デフォルトの名無しさん (ワッチョイ 9b7b-KWkY)
2017/02/20(月) 23:02:59.12ID:NnqcO0cq00933デフォルトの名無しさん (ワッチョイ 5f41-LjcY)
2017/02/20(月) 23:17:24.05ID:rV4WoTG+00934デフォルトの名無しさん (ガラプー KK9f-jCT1)
2017/02/21(火) 09:20:31.76ID:QkDHiBD7K0935デフォルトの名無しさん (ワンミングク MM7f-VS2f)
2017/02/21(火) 10:00:42.89ID:ltD/wwLEMCでアライメント以外から読むとバイト命令に分解してくれる
0936デフォルトの名無しさん (JP 0H7f-eq+O)
2017/02/21(火) 10:43:59.07ID:aWgu+CnVHscanf("%s", &ball_cnt[i]);
}
for(i = 0;i < n;i++)
if(strcmp(ball_cnt[i] , "ball") )
strcmpのところなんですけど、文字列じゃないみたいなエラーが出ます
どうすればいい?
0937デフォルトの名無しさん (ワッチョイ 0f4f-Z7AI)
2017/02/21(火) 10:52:08.88ID:BgWMeE5K00938デフォルトの名無しさん (ワンミングク MM7f-VS2f)
2017/02/21(火) 11:03:44.96ID:ltD/wwLEM&
0939デフォルトの名無しさん (ワッチョイ 9b7b-KWkY)
2017/02/21(火) 11:52:49.74ID:fKpiZ+wv00940デフォルトの名無しさん (ガラプー KK9f-jCT1)
2017/02/21(火) 12:33:43.86ID:QkDHiBD7K0941デフォルトの名無しさん (ドコグロ MM7f-My/j)
2017/02/21(火) 12:47:30.12ID:y0kzTLQNMエスパーすると
char ball_cnt[10];
を
char ball_cnt[10][100];
にすればいい
0942デフォルトの名無しさん (ドコグロ MM1f-/Y6J)
2017/02/21(火) 12:49:03.86ID:dghNTJ/ZMそんなみたいな書き方だが
0943デフォルトの名無しさん (JP 0H7f-eq+O)
2017/02/21(火) 13:05:31.21ID:xcI3fiLiHありがとうございました
0944デフォルトの名無しさん (フリッテル MMff-SEkl)
2017/02/21(火) 14:36:35.36ID:0IEOlzl2Mご愁傷さまお察しします
0945デフォルトの名無しさん (ガラプー KK9f-jCT1)
2017/02/21(火) 14:49:04.80ID:QkDHiBD7K%.20sじゃなくて%20sじゃん
printfのほうは出力する文字数を%.20sみたいにして指定するのに
0946デフォルトの名無しさん (ワッチョイ 9b85-xqG9)
2017/02/21(火) 18:54:53.97ID:vHI0u4yb00947デフォルトの名無しさん (ワッチョイ db6f-Cx8r)
2017/02/21(火) 18:57:52.13ID:lv29oxmo0出力文字数を指定するときに %20s みたいに使って、
入力文字数を指定するときに %20s みたいに使うからわりと対称的
0948デフォルトの名無しさん (ワッチョイ 5b3c-PWPk)
2017/02/21(火) 19:02:12.56ID:fi9G+CXq00949デフォルトの名無しさん (ワッチョイ 9b85-xqG9)
2017/02/21(火) 19:06:02.72ID:vHI0u4yb00950デフォルトの名無しさん (ワッチョイ 9b85-xqG9)
2017/02/21(火) 19:13:00.02ID:vHI0u4yb0それはない、x86 でバリバリC言語してた身としては
http://www.lsi-j.co.jp/freesoft/
0951デフォルトの名無しさん (ワッチョイ fb42-P9CU)
2017/02/21(火) 19:39:05.11ID:mvy681QG00952デフォルトの名無しさん (ワンミングク MM7f-VS2f)
2017/02/21(火) 20:44:29.88ID:ltD/wwLEMDOH-CとかBDS-Cも
0953デフォルトの名無しさん (アウアウカー Sa9f-6x/Q)
2017/02/21(火) 21:24:05.05ID:I23QSZrAax86って8086のこと?
もちろん16ビットとかPICやらマイコンでもCは使うのは分かるけどさ、32ビットがデフォでもういいんじゃない?めんどくさいじゃん。キャラクタマシンだか何かよくわからん話してたからさ。それだけだよ。
16ビットの環境ならアセンブラのが普通だったけどね。俺の周りではね。それだけじゃないのは分かるよ。
0954デフォルトの名無しさん (ワンミングク MM7f-VS2f)
2017/02/21(火) 22:06:56.47ID:ltD/wwLEMおちょくられたりするんだがな。
浮川初子さんがインターフェースに一太郎の作り方の記事を書いて
一気に広がったんだよ。LoadRunnerのソース公開の影響もあったが
0955デフォルトの名無しさん (ワッチョイ 0b7b-+OgX)
2017/02/21(火) 22:19:46.76ID:C6owlZ6F0"intが最適の型"などという64bitより前の古代でしか通用しない常識は
いつまで信じ続けられるのだろうか
0956デフォルトの名無しさん (ワッチョイ fb42-P9CU)
2017/02/21(火) 22:34:44.51ID:mvy681QG0それに応じてintも色々でいいんじゃ
0957デフォルトの名無しさん (ワッチョイ 9b7b-KWkY)
2017/02/21(火) 22:36:11.14ID:fKpiZ+wv00958デフォルトの名無しさん (スププ Sd7f-Aztl)
2017/02/21(火) 22:57:59.90ID:YCLculbKdえ、今は違うの?
0959デフォルトの名無しさん (ワッチョイ 9b7b-KWkY)
2017/02/21(火) 23:52:29.68ID:fKpiZ+wv0http://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.4.4.html
こういう老害に毒されてんだろ
最近は普通にSIMD使うからfloatにすれば並列度倍になる
0960デフォルトの名無しさん (ワッチョイ 5f17-P9CU)
2017/02/21(火) 23:59:27.09ID:7xwMLvhY00961デフォルトの名無しさん (ワントンキン MM7f-Mjmn)
2017/02/22(水) 00:04:36.17ID:skecWnENMCopyrightの書かれてる1996年ぐらい昔ならあってるんじゃない?
未だにそのままだと思ってたら老害以外の何者でもないけど
0962デフォルトの名無しさん (ワントンキン MM7f-Mjmn)
2017/02/22(水) 00:05:57.09ID:skecWnENMレベルの違う老害がここに居た
0963デフォルトの名無しさん (スププ Sd7f-Aztl)
2017/02/22(水) 00:09:11.78ID:We9e0t+Ddひええ毒されてたわ。試してみるわありがとう
0964デフォルトの名無しさん (ワッチョイ 5f3c-extS)
2017/02/22(水) 00:19:18.37ID:1Gh+3iOh0floatが遅いって言われてるのはC言語標準関数がdoubleを受け取るから、
暗黙の型変換の影響で速度が落ちると認識してる。
0965デフォルトの名無しさん (ワッチョイ 9b7b-KWkY)
2017/02/22(水) 01:03:38.58ID:gYGcupo+0自動ベクトル化は信用ならねー
intrinsicで並列度倍を実感しろ
0966デフォルトの名無しさん (ワッチョイ 9b7b-KWkY)
2017/02/22(水) 01:10:01.75ID:gYGcupo+0K&Rはfloatはdoubleに昇格して演算してたらしい
0967デフォルトの名無しさん (ワッチョイ 9b76-SUxD)
2017/02/22(水) 01:30:17.74ID:jhnK2Vaj00968デフォルトの名無しさん (ワッチョイ 5f17-yXFx)
2017/02/22(水) 01:51:49.70ID:/6Ihs1O400969デフォルトの名無しさん (ワッチョイ fb7b-Mjmn)
2017/02/22(水) 02:36:14.01ID:lOsu94SA0それ、なにか良いことあんの?
0970デフォルトの名無しさん (ワッチョイ 6f13-eq+O)
2017/02/22(水) 05:26:48.70ID:va0ygQi40駄目だ,森公一氏に申し訳が立たない
16ビットの環境でもCはそれなりに便利だった
当然,64ビットの環境では,sizeof(int)==8 であるべきだと思っている
0971デフォルトの名無しさん (ワッチョイ 6f13-eq+O)
2017/02/22(水) 05:30:15.90ID:va0ygQi40普通のCの記述を SIMD に替えてくれるコンパイラなんかあるのか?
0 クリアとか特殊な環境じゃないか?
SIMD を使うには,自力でインラインアセンブラを書くしかないのでは?
SIMD にかわるソースとコンパイラをさらせ
0972デフォルトの名無しさん (ワッチョイ 6f13-eq+O)
2017/02/22(水) 05:30:36.15ID:va0ygQi40すぐなびかれるやつ‥
0973デフォルトの名無しさん (ワッチョイ 6f13-eq+O)
2017/02/22(水) 05:32:30.42ID:va0ygQi40少し前は float で書こうと double で書こうと,結局は同じ FPU で処理されるから,速度は同じだった
今は単精度の方が早い演算ユニットがあるとのことだが‥
0974デフォルトの名無しさん (ドコグロ MM9f-My/j)
2017/02/22(水) 06:51:17.84ID:sG12pa6iM普通に靡く(なびく)でいい
0975デフォルトの名無しさん (ワッチョイ dfc0-fRM8)
2017/02/22(水) 07:05:30.17ID:0mdr3Sk200976デフォルトの名無しさん (ワッチョイ 6f13-eq+O)
2017/02/22(水) 07:07:10.38ID:va0ygQi40intrinsics があるねコンパイラ間の互換性はどうかな
0977デフォルトの名無しさん (ワッチョイ 8bfd-Z7AI)
2017/02/22(水) 07:48:18.26ID:VKa3Qwp50争いが絶えません…。
0978デフォルトの名無しさん (ワンミングク MM7f-VS2f)
2017/02/22(水) 08:23:52.99ID:0bPwhBMCM今は普通FPGAで高位合成だし。
0979デフォルトの名無しさん (アウアウカー Sa9f-6x/Q)
2017/02/22(水) 08:25:08.78ID:UyPBUJB2a分かった分かったw
どっちでもいいよ。そんなことで議論になるのはここだけだから。
ちなみに64ビットでintが8バイトならlongはいくつが正解なの?2バイト、4バイトのデータはどうやって定義するの?
0980デフォルトの名無しさん (ワッチョイ 9b7b-KWkY)
2017/02/22(水) 08:57:56.47ID:gYGcupo+0この程度の常識を知らない上に検索すらできないのか
さらせじゃなくて教えて下さいだろ
死ねゴミクズ
0981デフォルトの名無しさん (ドコグロ MM7f-/Y6J)
2017/02/22(水) 09:13:00.60ID:JYVNL8lSMopenCLとかGPU演算だとfloatが普通だね
>>979
inttypes.h使えよ
0982デフォルトの名無しさん (ワッチョイ fb7b-NnZO)
2017/02/22(水) 09:39:03.53ID:lOsu94SA0https://godbolt.org/g/hP3KHc
ほれ
0983デフォルトの名無しさん (ワッチョイ fb7b-NnZO)
2017/02/22(水) 09:43:45.44ID:lOsu94SA00984デフォルトの名無しさん (ブーイモ MM1f-88IT)
2017/02/22(水) 09:57:16.74ID:mTbC51LDM配列をループで回す場合はどうなんだろ
0985デフォルトの名無しさん (フリッテル MMff-SEkl)
2017/02/22(水) 10:20:36.68ID:3Ury4/yQMライブラリ使ってるだけじゃねーか
0986デフォルトの名無しさん (ワッチョイ fb7b-Mjmn)
2017/02/22(水) 10:27:26.29ID:lOsu94SA0ちょっとなに言ってるのか分かりません…
誰か翻訳お願いします…
0987デフォルトの名無しさん (ワッチョイ fb7b-NnZO)
2017/02/22(水) 10:36:50.46ID:lOsu94SA0>>985 の脳内Parserがバグっちゃったのかな…?
https://godbolt.org/g/odjVPD
C言語だけで書き直したので許してください。
0988デフォルトの名無しさん (JP 0H1f-vlft)
2017/02/22(水) 10:56:08.12ID:T1tKwjPzH0989デフォルトの名無しさん (ワントンキン MM7f-Mjmn)
2017/02/22(水) 11:06:20.15ID:skecWnENM入力と全く関係ない出力だしてたらメモリ破壊を疑うレベルのバグでしょ
0990デフォルトの名無しさん (ガラプー KK9f-jCT1)
2017/02/22(水) 11:09:26.09ID:YkHu5T7KK0991デフォルトの名無しさん (JP 0H1f-vlft)
2017/02/22(水) 11:15:06.44ID:T1tKwjPzH0992デフォルトの名無しさん (JP 0H7f-eq+O)
2017/02/22(水) 14:22:54.50ID:0ByvbR5mHinputfile = fopen("a.txt", "r");
if (inputfile == NULL) {
fprintf(stderr, "エラー: ファイルがオープンできません\n");
exit(1);
}
2つの違いって何?
0993デフォルトの名無しさん (ワッチョイ 0b7b-+OgX)
2017/02/22(水) 18:57:21.56ID:xeEkzIw00http://echo.2ch.net/test/read.cgi/tech/1487757355/
0994デフォルトの名無しさん (ワッチョイ de7b-yCfG)
2017/02/23(木) 04:56:21.10ID:gBe3T0DV00995デフォルトの名無しさん (ワッチョイ 2317-lJUo)
2017/02/23(木) 04:58:40.29ID:ZvvhW9wz00996デフォルトの名無しさん (ワッチョイ bf7b-FQj1)
2017/02/23(木) 05:02:08.03ID:9COuC8bh00997デフォルトの名無しさん (ブーイモ MMc7-9rcX)
2017/02/23(木) 12:04:56.67ID:Y2IzSc+YM0998デフォルトの名無しさん (ワッチョイ 03a1-qQc9)
2017/02/23(木) 14:01:17.47ID:/SYc2KR200999デフォルトの名無しさん (ワッチョイ 6b7b-JtgB)
2017/02/23(木) 15:26:17.93ID:lA8ifvC901000デフォルトの名無しさん (ワッチョイ 233b-8xjF)
2017/02/23(木) 16:51:52.86ID:PCt9ZqJm010011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
life time: 74日 19時間 37分 57秒
10021002
Over 1000Thread運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/
▼ 浪人ログインはこちら ▼
https://login.2ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。