C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf
C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/
前スレ
C言語なら俺に聞け 142
http://mevius.2ch.net/test/read.cgi/tech/1502364083/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
C言語なら俺に聞け 143
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ b375-rVGZ)
2017/10/27(金) 21:28:08.20ID:pAogLeJi0483デフォルトの名無しさん (ワッチョイ 5fe1-VLot)
2017/11/24(金) 23:29:26.60ID:LzKIf/Vy0 外のスコープで定義されたものと名前が衝突した場合は内側の方が有効になり
同じスコープで衝突した場合はエラーになる
同じスコープで衝突した場合はエラーになる
484デフォルトの名無しさん (ワンミングク MM3f-I1Jk)
2017/11/24(金) 23:30:01.94ID:oz95vMBJM cでは出来ない。という仕様
485デフォルトの名無しさん (ワッチョイ 078a-9mpY)
2017/11/25(土) 00:53:38.80ID:JCp8dCym0 サンガツ
486デフォルトの名無しさん (ワッチョイ bfe7-3a+g)
2017/11/25(土) 06:12:18.91ID:KGlQ3mpn0 同じ変数名でもスコープが違えば出来るよ。
487デフォルトの名無しさん (ワッチョイ c761-DWFp)
2017/11/25(土) 06:35:32.53ID:H7G0IpRv0 int* ptの意味は意味int *ptだよ。
ptをデリファレンス演算子で評価したらint型になるよという宣言だよ。
ptをデリファレンス演算子で評価したらint型になるよという宣言だよ。
488デフォルトの名無しさん (ワッチョイ 0793-C/lT)
2017/11/25(土) 08:28:27.42ID:InRb1JFJ0 変数名が型ごとに独立した名前空間に属する、という言語があるのかな。
原理的には可能だと思うけど、えらく組みにくそうな気がする。
「型だけが異なる同名の変数を使わない」みたいなコーディング規約を強制されそう。
原理的には可能だと思うけど、えらく組みにくそうな気がする。
「型だけが異なる同名の変数を使わない」みたいなコーディング規約を強制されそう。
489デフォルトの名無しさん (ワッチョイ c761-DWFp)
2017/11/25(土) 08:44:13.26ID:H7G0IpRv0 構造体のネームスペースみたいに
全部の変数に型名をつけるようになるだろうな。
全部の変数に型名をつけるようになるだろうな。
490デフォルトの名無しさん (ワッチョイ 07b3-3T+V)
2017/11/25(土) 08:47:32.78ID:t3NLc0dP0 かえって使いづらい言語になるね
491デフォルトの名無しさん (ワッチョイ 0771-pnlc)
2017/11/25(土) 09:32:16.56ID:87Khqx810 変数の寿命はできるだけ短くしましょう
492デフォルトの名無しさん (スプッッ Sdff-T4vC)
2017/11/25(土) 13:36:36.33ID:O9uPrWP7d リーダブルコーディングとeffective以外に本を探してるのだけど他にあるかな?
493デフォルトの名無しさん (ワッチョイ 7f80-xsLR)
2017/11/25(土) 14:31:12.80ID:99QBz+fh0 組込み開発者におくるMISRA‐C:2004―C言語利用の高信頼化ガイド、2006
494デフォルトの名無しさん (ワッチョイ 0771-pnlc)
2017/11/25(土) 16:19:42.50ID:87Khqx810 C実践プログラミング
495デフォルトの名無しさん (スッップ Sd7f-STtB)
2017/11/25(土) 16:51:39.14ID:o/Q+Vng/d っコードコンプリート
496デフォルトの名無しさん (ワッチョイ 879f-UVmO)
2017/11/25(土) 17:02:06.40ID:DmTU06Rg0 >>488
perlは$aと@aと%aが違うけどな。型と言うよりはスカラか配列かハッシュかの違いだな。
perlは$aと@aと%aが違うけどな。型と言うよりはスカラか配列かハッシュかの違いだな。
497デフォルトの名無しさん (ワッチョイ 5f60-2JzH)
2017/11/25(土) 17:03:44.75ID:ROI3Hzdd0 >>493
ネットで MISRA の詳しい解説はありませんか?
ネットで MISRA の詳しい解説はありませんか?
498デフォルトの名無しさん (ワンミングク MM3f-I1Jk)
2017/11/25(土) 17:08:09.65ID:N5s7ffCaM499デフォルトの名無しさん (ワッチョイ bfe7-enc/)
2017/11/25(土) 17:24:25.43ID:6ctJHfBp0 処理重視なら毎回毎回変数宣言って処理が鈍くなるよな?
500デフォルトの名無しさん (ワッチョイ 7f81-nM14)
2017/11/25(土) 17:58:52.01ID:AcXq78AE0 インタプリタじゃないです
501デフォルトの名無しさん (ワッチョイ 07b3-3T+V)
2017/11/25(土) 17:59:36.62ID:t3NLc0dP0 C++でもないのでコンストラクタ走るわけでもないです
502デフォルトの名無しさん (ササクッテロル Spfb-t8ZL)
2017/11/25(土) 18:34:32.19ID:ve9pYFQ+p スタック操作なんか関数呼び出し時にまとめてやってるから、どこで宣言しようが処理速度は変わらないけどな。
503デフォルトの名無しさん (ワッチョイ 5f60-2JzH)
2017/11/25(土) 18:34:37.15ID:ROI3Hzdd0 >>499
その程度ならコンパイラが良きに計らってくれますよ
その程度ならコンパイラが良きに計らってくれますよ
504デフォルトの名無しさん (ワッチョイ 6755-P8Uf)
2017/11/25(土) 19:25:41.27ID:Hc9rYyD70 for文の中の変数宣言って外で行うよりオーバーヘッド大きいの?
505デフォルトの名無しさん (スッップ Sd7f-STtB)
2017/11/25(土) 19:29:40.95ID:o/Q+Vng/d506デフォルトの名無しさん (ワッチョイ 879f-UVmO)
2017/11/25(土) 20:41:30.63ID:DmTU06Rg0507デフォルトの名無しさん (ワッチョイ 879f-lrN+)
2017/11/25(土) 20:51:32.38ID:L+SRk42p0 あ、C++みたいな言語でクラスの中でメモリ確保してデストラクタで解放やってるような場合は
ループするブロックの中で宣言したら最低でもメモリ確保と解放でループの回数分時間
掛かっちゃうだろうけど、C言語にはそういうのはないので掛からない。
ループするブロックの中で宣言したら最低でもメモリ確保と解放でループの回数分時間
掛かっちゃうだろうけど、C言語にはそういうのはないので掛からない。
508デフォルトの名無しさん (スッップ Sd7f-Xp/k)
2017/11/25(土) 20:59:06.21ID:XP2bT693d 動的に確保というのはあるだろうが、
俺を意識した使い方するだろうし
俺を意識した使い方するだろうし
509デフォルトの名無しさん (ワッチョイ bf8a-S11E)
2017/11/25(土) 21:27:39.55ID:FWelsGSm0 VLAはスコープの出入りで伸縮だと思うが
510デフォルトの名無しさん (ワッチョイ 879f-UVmO)
2017/11/25(土) 22:01:34.55ID:DmTU06Rg0511デフォルトの名無しさん (ワッチョイ bfe7-enc/)
2017/11/26(日) 16:09:01.86ID:EJqMiwXm0512デフォルトの名無しさん (JP 0Heb-DWFp)
2017/11/26(日) 16:12:10.13ID:xKw15WCKH そのレベルの理解なら気にする必要はない
そもそもCを使う必要もない
そもそもCを使う必要もない
513デフォルトの名無しさん (ワッチョイ 5fb3-CDhT)
2017/11/26(日) 16:15:46.29ID:pGcZHtwF0 >>511
> for文とかの中で宣言してやったりすると毎回確保するから処理の速度が遅くなるってどっかで書いてあった
よほどショボいコンパイラでない限り気にする必要はない
> なるべく何回も宣言しないで中身を変える処理をする方が処理がはやくなるとか言ってた
そう言うアホな本は窓から捨てるべき
> for文とかの中で宣言してやったりすると毎回確保するから処理の速度が遅くなるってどっかで書いてあった
よほどショボいコンパイラでない限り気にする必要はない
> なるべく何回も宣言しないで中身を変える処理をする方が処理がはやくなるとか言ってた
そう言うアホな本は窓から捨てるべき
514デフォルトの名無しさん (ワッチョイ bfe7-enc/)
2017/11/26(日) 16:46:48.52ID:EJqMiwXm0515デフォルトの名無しさん (ワッチョイ 07b3-3T+V)
2017/11/26(日) 16:52:44.80ID:14BIGute0 宣言と長い処理って何処に関連が?
初期化の右辺がすんげー長いというのは
変数宣言がループの中にあろうが変数宣言をループの外に追い出しても
同じで必須コストだしそこは論点じゃないよね
初期化の右辺がすんげー長いというのは
変数宣言がループの中にあろうが変数宣言をループの外に追い出しても
同じで必須コストだしそこは論点じゃないよね
516デフォルトの名無しさん (ワッチョイ bfe7-enc/)
2017/11/26(日) 17:10:19.17ID:EJqMiwXm0517デフォルトの名無しさん (ワッチョイ 07b3-3T+V)
2017/11/26(日) 17:15:43.31ID:14BIGute0518デフォルトの名無しさん (ワッチョイ bfe7-enc/)
2017/11/26(日) 17:20:34.69ID:EJqMiwXm0 なるほどなるほど、アルゴリズムの問題か納得した
519デフォルトの名無しさん (ワッチョイ 7f81-nM14)
2017/11/26(日) 17:23:40.85ID:woDc+4Yf0 C言語じゃなくてC++でのクラス変数じゃないの?
520デフォルトの名無しさん (ワッチョイ 5fb3-CDhT)
2017/11/26(日) 17:29:05.50ID:pGcZHtwF0 >>514
測定して本当にそれが問題になってるとわかった時に考えればいい
測定して本当にそれが問題になってるとわかった時に考えればいい
521デフォルトの名無しさん (ワッチョイ 879f-lrN+)
2017/11/26(日) 17:57:37.44ID:YtJM5Nau0 >>516
「実際のところ」と書いてある所をよく読むべき。
「実際のところ」と書いてある所をよく読むべき。
522デフォルトの名無しさん (スップ Sd7f-T4vC)
2017/11/27(月) 04:22:16.28ID:vYl0vGfCd コードとは直接関係はないけどメモリリークのテストってlinuxだとどうやるのだろう?
523デフォルトの名無しさん (ブーイモ MMeb-V9cG)
2017/11/27(月) 07:40:08.21ID:fAclYYwOM >>522
valgrind か LeakSanitizer
valgrind か LeakSanitizer
524デフォルトの名無しさん (ドコグロ MMbb-CDhT)
2017/11/27(月) 07:57:21.48ID:ENOa9M21M525デフォルトの名無しさん (ワッチョイ 079f-V5k9)
2017/11/27(月) 13:20:55.85ID:HfjV3qo40 脳内ループ最適化かー。結構良く目にするのは
int i;
for(i = rows; 0 < i; i―)
Hoge;
だったりするけど
組み込みでも、このくらい最適化かかるのにねぇ
int i;
for(i = rows; 0 < i; i―)
Hoge;
だったりするけど
組み込みでも、このくらい最適化かかるのにねぇ
526デフォルトの名無しさん (スップ Sd7f-T4vC)
2017/11/27(月) 19:33:17.36ID:vYl0vGfCd527デフォルトの名無しさん (アウアウカー Sadb-i88m)
2017/11/27(月) 20:30:19.45ID:clAY2uWxa >>526
systemって-1返す事なかったっけ?
systemって-1返す事なかったっけ?
529デフォルトの名無しさん (ワッチョイ ff7f-lAwh)
2017/11/27(月) 22:36:43.33ID:AvUHS7bA0530デフォルトの名無しさん (ブーイモ MM7f-V9cG)
2017/11/27(月) 22:55:20.44ID:epITd0LcM >>529
メモリマップとかは見てると分かった気になれるし、仕事してる感も出るからおすすめ
メモリマップとかは見てると分かった気になれるし、仕事してる感も出るからおすすめ
531デフォルトの名無しさん (スプッッ Sdff-T4vC)
2017/11/27(月) 23:00:48.16ID:jJU6vIIdd532デフォルトの名無しさん (ワッチョイ 879f-lrN+)
2017/11/28(火) 01:05:27.23ID:uD/TV9F60 >>531
https://linuxjm.osdn.jp/html/LDP_man-pages/man2/wait.2.html
Linux の場合大きく分けて WIFEXITED と WIFSIGNALED 以外があるのかというと今のところない。
しかし将来的に増えないとも限らないので念のため if で分岐させておいた方が良いと思う。
https://linuxjm.osdn.jp/html/LDP_man-pages/man2/wait.2.html
Linux の場合大きく分けて WIFEXITED と WIFSIGNALED 以外があるのかというと今のところない。
しかし将来的に増えないとも限らないので念のため if で分岐させておいた方が良いと思う。
533デフォルトの名無しさん (ワッチョイ 07b3-zoBB)
2017/11/28(火) 01:45:58.95ID://UzmZat0 https://i.imgur.com/NECNUPM.jpg
この問題なんだけど、下の書き方以外に賢い方法ある?
このやり方はごり押し過ぎてさすがに違うと思うんだけど
http://codepad.org/pUUVFFJA
この問題なんだけど、下の書き方以外に賢い方法ある?
このやり方はごり押し過ぎてさすがに違うと思うんだけど
http://codepad.org/pUUVFFJA
534デフォルトの名無しさん (ブーイモ MM7f-V9cG)
2017/11/28(火) 03:16:49.45ID:Ol4PUSI5M535デフォルトの名無しさん (ワッチョイ 0793-C/lT)
2017/11/28(火) 07:53:02.37ID:tl7kMs1v0 C99以降だっけ?
省略された int main() の返り値として自動的に return 0; が補われる、
という仕様があるはずだけど、それに積極的に依存するよりも
return 0; と1行書く方が良い習慣だわね。
省略された int main() の返り値として自動的に return 0; が補われる、
という仕様があるはずだけど、それに積極的に依存するよりも
return 0; と1行書く方が良い習慣だわね。
536デフォルトの名無しさん (スプッッ Sdff-T4vC)
2017/11/28(火) 08:09:45.26ID:VZsT4wzqd537デフォルトの名無しさん (ブーイモ MMcf-T7/p)
2017/11/28(火) 18:38:43.18ID:v3J3k8MEM stdlib.hのSUCCESSなんちゃらをほんにゃら
538デフォルトの名無しさん (ワッチョイ 879f-lrN+)
2017/11/29(水) 02:06:01.37ID:1lf2VR3q0 >>536
試してみればわかると思うけど system() で動かされた子プロセスは SIGSTOP 受け取っても
停止するだけで親プロセスには帰らないよ。system() 内でやってる waitpid() は WUNTRACED
や WCONTINUED オプション使ってないってことだと思う。なので STOP や CONT に関係する
WIF... はやる必要がない。
試してみればわかると思うけど system() で動かされた子プロセスは SIGSTOP 受け取っても
停止するだけで親プロセスには帰らないよ。system() 内でやってる waitpid() は WUNTRACED
や WCONTINUED オプション使ってないってことだと思う。なので STOP や CONT に関係する
WIF... はやる必要がない。
539デフォルトの名無しさん (ワッチョイ 67a0-5mWG)
2017/11/29(水) 15:46:29.13ID:awoPtY5k0 char str1[10]="AAAAAA";
char str2[10]="BBBBBB";
char str3[10]="CCCCCC";
があって、これをそれぞれ
char strh[0][10]〜char strh[2][10]に代入する方法を教えてください。
char str2[10]="BBBBBB";
char str3[10]="CCCCCC";
があって、これをそれぞれ
char strh[0][10]〜char strh[2][10]に代入する方法を教えてください。
540デフォルトの名無しさん (ワッチョイ 2761-+V5r)
2017/11/29(水) 15:58:48.18ID:mhTWLdh/0 strcpy(strh[0],str1);
strcpy(strh[1],str2);
strcpy(strh[2],str3);
と適当に書いてみる。
strcpy(strh[1],str2);
strcpy(strh[2],str3);
と適当に書いてみる。
541デフォルトの名無しさん (ササクッテロル Spfb-t8ZL)
2017/11/29(水) 16:16:35.31ID:4OxukQ3ip ポインターのコピーじゃダメなんですか?
なんで中身をわざわざ複製して、処理時間を無駄に消費するんですか?
なんで中身をわざわざ複製して、処理時間を無駄に消費するんですか?
542デフォルトの名無しさん (スプッッ Sdff-T4vC)
2017/11/29(水) 16:25:56.35ID:llo+D0tpd543デフォルトの名無しさん (ワッチョイ bf8a-LwI/)
2017/11/29(水) 17:24:28.37ID:FWpFj9nP0 >>541
ポインタのコピーだとコピー元の配列(str1[],str2[],str3[])の中身を変更するとコピー先(*strh[0]〜*strh[2])の内容まで変わる
値のコピー(strcpy()など)だとコピー元の配列の中身が変わってもコピー先の配列(strh[0][]〜strh[2][])の内容は変化しない
配列とポインタでは挙動が違う
ポインタのコピーだとコピー元の配列(str1[],str2[],str3[])の中身を変更するとコピー先(*strh[0]〜*strh[2])の内容まで変わる
値のコピー(strcpy()など)だとコピー元の配列の中身が変わってもコピー先の配列(strh[0][]〜strh[2][])の内容は変化しない
配列とポインタでは挙動が違う
544デフォルトの名無しさん (ワッチョイ c7ea-3T+V)
2017/11/29(水) 17:38:36.67ID:7w8PUMIS0 初期化でやってしまう話じゃないんだろうな。 多分
char strh[3][10] = { "AAAAAA", "BBBBBB", "CCCCCC" };
char strh[3][10] = { "AAAAAA", "BBBBBB", "CCCCCC" };
545デフォルトの名無しさん (ガックシ 068f-forR)
2017/11/29(水) 17:49:08.23ID:Ypog5BGe6 配列変数はただのポインタ変数じゃないってマジ?
arr==&arrになるんやが。
arrがポインタなら&arrはポインタのポインタだからこれはおかしい。
arr==&arrになるんやが。
arrがポインタなら&arrはポインタのポインタだからこれはおかしい。
546デフォルトの名無しさん (ブーイモ MMeb-T7/p)
2017/11/29(水) 18:28:37.84ID:azEm6Mj/M 配列名が先頭要素へのポインタになるのは構文糖
547デフォルトの名無しさん (ワッチョイ 07b3-3T+V)
2017/11/29(水) 18:44:21.59ID:+PcO5Rrn0 int a[10];
int *p;
p++; 問題なし
a++; エラー
配列は配列 ポインタはポインタ
int *p;
p++; 問題なし
a++; エラー
配列は配列 ポインタはポインタ
548デフォルトの名無しさん (ワッチョイ a77f-8Ex9)
2017/11/29(水) 18:50:37.55ID:Xa+98JY60 arrと&arrじゃ型違うし、比較結果が一致する保証もないけど?
549デフォルトの名無しさん (アウアウカー Sadb-i88m)
2017/11/29(水) 18:51:10.65ID:DGImDAX5a また一人C言語の罠に掛かったようだ・・・
550デフォルトの名無しさん (アウアウカー Sadb-i88m)
2017/11/29(水) 18:57:26.48ID:DGImDAX5a551デフォルトの名無しさん (ブーイモ MMeb-T7/p)
2017/11/29(水) 19:03:01.69ID:azEm6Mj/M よし、sizef演算子の出番だな。
552デフォルトの名無しさん (ワッチョイ 0793-C/lT)
2017/11/29(水) 19:11:32.94ID:vgi7NPsq0553デフォルトの名無しさん (ワッチョイ 0775-forR)
2017/11/29(水) 19:31:59.94ID:bodUKsOx0 >配列名 arr は &arr[0] (先頭の要素へのポインタ)
>配列名に&演算子を作用させた &arr は配列全体(10要素の配列)へのポインタ
>…と解釈される、とANSIで決まった、と望洋さんの本に載ってる。
なるほどな
>配列名に&演算子を作用させた &arr は配列全体(10要素の配列)へのポインタ
>…と解釈される、とANSIで決まった、と望洋さんの本に載ってる。
なるほどな
554デフォルトの名無しさん (ワッチョイ a77f-8Ex9)
2017/11/29(水) 19:54:00.64ID:Xa+98JY60 >>552
>6.5.9 等価演算子
>(中略)
>制約??次のいずれかの条件を満たさなければならない。
>(中略)
>-両オペランドとも適合する型の修飾版又は非修飾版へのポインタである。
「〜型」と「〜型の配列型」は適合しないから、ポインタの比較は未定義
>6.5.9 等価演算子
>(中略)
>制約??次のいずれかの条件を満たさなければならない。
>(中略)
>-両オペランドとも適合する型の修飾版又は非修飾版へのポインタである。
「〜型」と「〜型の配列型」は適合しないから、ポインタの比較は未定義
555デフォルトの名無しさん (ワッチョイ 7f80-xsLR)
2017/11/29(水) 20:09:41.35ID:/RfTzpPk0 >>552
型が異なったら、比較できない
例えば、アドレス100番地から10バイトと、
アドレス100番地から20バイトでは、全然違う
仮に、同じバイト数だとしても、中身・内容が異なるし、比較する事に意味がない
型が異なったら、比較できない
例えば、アドレス100番地から10バイトと、
アドレス100番地から20バイトでは、全然違う
仮に、同じバイト数だとしても、中身・内容が異なるし、比較する事に意味がない
556デフォルトの名無しさん (ワッチョイ 5ff9-uRPb)
2017/11/29(水) 22:15:27.21ID:QTG/JUE+0 >>542
ファイルの破損というのがファイルの中身の論理レベルの話なら正常なファイルとみなされるはずだし、ファイルシステムレベルの破損やメディアの物理的破損なら実装依存じゃないかな。
ファイルの破損というのがファイルの中身の論理レベルの話なら正常なファイルとみなされるはずだし、ファイルシステムレベルの破損やメディアの物理的破損なら実装依存じゃないかな。
557デフォルトの名無しさん (ワッチョイ 5ff9-uRPb)
2017/11/29(水) 22:18:50.37ID:QTG/JUE+0 >>555
いま話題にしているのはarrと&arr[0]の比較であって、これらはどちらも比較演算子のオペランドとしてはint*型として評価されて型も値も一致すると思ってたけど、どうだろう。
いま話題にしているのはarrと&arr[0]の比較であって、これらはどちらも比較演算子のオペランドとしてはint*型として評価されて型も値も一致すると思ってたけど、どうだろう。
558デフォルトの名無しさん (ワッチョイ 5ff9-uRPb)
2017/11/29(水) 22:20:43.77ID:QTG/JUE+0 >>557
間違えた。arrと&arrね。&arrもint*型のはず、だと思う。
間違えた。arrと&arrね。&arrもint*型のはず、だと思う。
559デフォルトの名無しさん (ワッチョイ a77f-8Ex9)
2017/11/29(水) 22:42:55.53ID:Xa+98JY60 実際にコンパイルすれば型不一致のwarning出るのに、なんでそういう発想になるんだろう
不思議だわ
不思議だわ
560デフォルトの名無しさん (ワッチョイ 3d93-kA4S)
2017/11/30(木) 06:56:06.98ID:VGvsvH1F0561デフォルトの名無しさん (ワッチョイ 4af9-4cvy)
2017/11/30(木) 07:49:26.15ID:T6nL/USz0 >>560
色々と記憶違いをしてたよ。サンクス。
色々と記憶違いをしてたよ。サンクス。
562デフォルトの名無しさん (ワッチョイ a66e-hJGX)
2017/11/30(木) 10:29:35.42ID:/QNJXUpA0563デフォルトの名無しさん (ワッチョイ 1e8a-YNua)
2017/11/30(木) 10:41:32.87ID:5xc99BMT0 arrは&arr[0]の糖衣構文なので型は同じint*だろ
564デフォルトの名無しさん (アウアウカー Sa55-kbEZ)
2017/11/30(木) 10:46:30.46ID:Rc2VGt53a 糖衣構文なのになんでわかりづらくなってるんすかね
565デフォルトの名無しさん (ササクッテロル Spbd-QD6R)
2017/11/30(木) 10:48:13.06ID:I+JVe+Ukp まあ、sizeofしたら分かるよ。
566デフォルトの名無しさん (ワッチョイ 1e8a-YNua)
2017/11/30(木) 10:53:47.57ID:5xc99BMT0 arr=&arr[0]≠&arr
567デフォルトの名無しさん (ワッチョイ a5ea-7XMe)
2017/11/30(木) 10:56:17.41ID:CwUb7XwN0 代入左辺の int* に渡す右辺
関数引数の int* に渡す引数
ここに渡す際に先頭要素へのポインタを与えてるだけで
変数そのものはポインタにはなっていなくて配列のまま
関数引数の int* に渡す引数
ここに渡す際に先頭要素へのポインタを与えてるだけで
変数そのものはポインタにはなっていなくて配列のまま
568デフォルトの名無しさん (ササクッテロル Spbd-QD6R)
2017/11/30(木) 11:01:32.20ID:I+JVe+Ukp arrは要素10持つ配列の先頭アドレスを返す、サイズはint 10個分
&arr[0]は、配列要素0番目のアドレスを返す、サイズはint 1個分
先頭アドレスが欲しいだけなら型キャストして使えばいい。
代入に使うならサイズが違うから上手く行かない。
&arr[0]は、配列要素0番目のアドレスを返す、サイズはint 1個分
先頭アドレスが欲しいだけなら型キャストして使えばいい。
代入に使うならサイズが違うから上手く行かない。
569デフォルトの名無しさん (ワッチョイ 1e8a-YNua)
2017/11/30(木) 11:10:18.71ID:5xc99BMT0 arr = &arr[0] ≠ &arr
sizeof(&arr) = sizeof(&arr[0]) ≠ sizeof(arr)
sizeof(&arr) = sizeof(&arr[0]) ≠ sizeof(arr)
570デフォルトの名無しさん (ワッチョイ a66e-hJGX)
2017/11/30(木) 12:23:05.77ID:/QNJXUpA0 >>563
いーや違う
§6.3.2 Other operands
Except when it is the operand of the sizeof operator, or the unary & operator, or is a string literal used to initialize an array, an expression that has type ‘‘array of type'' is
converted to an expression with type ‘‘pointer to type ' that points to the initial element of the array object and is not an lvalue.
あくまで配列からポインタへconvertedつまり元の型int[10]とは違う型int*への変換だ
いーや違う
§6.3.2 Other operands
Except when it is the operand of the sizeof operator, or the unary & operator, or is a string literal used to initialize an array, an expression that has type ‘‘array of type'' is
converted to an expression with type ‘‘pointer to type ' that points to the initial element of the array object and is not an lvalue.
あくまで配列からポインタへconvertedつまり元の型int[10]とは違う型int*への変換だ
571デフォルトの名無しさん (ブーイモ MMc9-ckDd)
2017/11/30(木) 12:39:07.57ID:wmrrhfKqM C言語は覚えることが少ないので初心者にお勧めです👈
572デフォルトの名無しさん (アウアウカー Sa55-iHXH)
2017/11/30(木) 12:58:49.70ID:7wMQk3WFa そ、そうかあ?
573デフォルトの名無しさん (ドコグロ MM12-PHvg)
2017/11/30(木) 13:08:48.69ID:CNBdn6EpM まあ他の言語よりはね
574デフォルトの名無しさん (ワッチョイ 5d8a-J59I)
2017/11/30(木) 15:43:07.77ID:AraxvjGC0 氏名、生年月日を入力させて、年齢を出力する。(ここまではいい)
再度起動時に、同一氏名入力時は生年月日と年齢を出力する(これがわからん)
方向性がさっぱり見えない、どうすりゃいいの?
http://codepad.org/BVM0iMi4
再度起動時に、同一氏名入力時は生年月日と年齢を出力する(これがわからん)
方向性がさっぱり見えない、どうすりゃいいの?
http://codepad.org/BVM0iMi4
575デフォルトの名無しさん (ワッチョイ a5ea-7XMe)
2017/11/30(木) 15:49:01.37ID:CwUb7XwN0 入力された氏名のファイルを探す
無い→ファイル作って 入力した生年月日を書き出すとともに変数に覚えておく
有る→ファイルから生年月日を変数に読み込む
↑の処理で変数で覚えている生年月日から年齢を求め表示する
無い→ファイル作って 入力した生年月日を書き出すとともに変数に覚えておく
有る→ファイルから生年月日を変数に読み込む
↑の処理で変数で覚えている生年月日から年齢を求め表示する
576デフォルトの名無しさん (ワッチョイ a5ea-7XMe)
2017/11/30(木) 15:50:35.20ID:CwUb7XwN0 異なる氏名の分だけファイルを作っちまうけどお手軽
577デフォルトの名無しさん (ワッチョイ 5d8a-J59I)
2017/11/30(木) 15:58:14.77ID:AraxvjGC0 if文&fread,fwriteでなんとかなります?
あと出来ればリンク先のソースコードにダメだし貰えると嬉しい
あと出来ればリンク先のソースコードにダメだし貰えると嬉しい
578デフォルトの名無しさん (ブーイモ MM8e-McTX)
2017/11/30(木) 17:12:52.14ID:hDUXhrlWM ファイルが一個しか使えないんなら、
その中に何の情報をどんなフォーマットで入れるか先に設計しろ。
その中に何の情報をどんなフォーマットで入れるか先に設計しろ。
579560 (ワッチョイ 3d93-kA4S)
2017/11/30(木) 17:54:17.29ID:VGvsvH1F0 >>562 言葉は悪いけど言う通りだね。
俺が書いたのは arr て名前が演算の対象として単独に現れたときに
自動的にポインタの値に変換される場合の値と型のことだった。
arr 自体はあくまで配列だから int[10]
この名前が関数の引数とかで使われた場合 &arr[0] と同じになる。
配列名は隙あらば「先頭要素へのポインタ」になりたがる。
こんな感じでよろしいか? (我ながらぎごちないけど)
俺が書いたのは arr て名前が演算の対象として単独に現れたときに
自動的にポインタの値に変換される場合の値と型のことだった。
arr 自体はあくまで配列だから int[10]
この名前が関数の引数とかで使われた場合 &arr[0] と同じになる。
配列名は隙あらば「先頭要素へのポインタ」になりたがる。
こんな感じでよろしいか? (我ながらぎごちないけど)
580デフォルトの名無しさん (アウアウカー Sa55-iHXH)
2017/11/30(木) 18:07:14.42ID:rYNpG8Zla >>577
fprintf()で一行にカンマ区切りで名前と生年月日出した方が扱いやすいのでは?
で、処理の順序としてはこうだ。
1. 名前入力。
2. 入力された名前がファイルの中にあったら一緒に入っている生年月日を出して終了。
3. 生年月日入力。
4. 名前と生年月日をファイルに追加。
5. 終了。
ファイルアクセスは2では読み出ししかせず開きっぱなしにしないでクローズする。
4では追加書き込みだけしてクローズだ。
fprintf()で一行にカンマ区切りで名前と生年月日出した方が扱いやすいのでは?
で、処理の順序としてはこうだ。
1. 名前入力。
2. 入力された名前がファイルの中にあったら一緒に入っている生年月日を出して終了。
3. 生年月日入力。
4. 名前と生年月日をファイルに追加。
5. 終了。
ファイルアクセスは2では読み出ししかせず開きっぱなしにしないでクローズする。
4では追加書き込みだけしてクローズだ。
581デフォルトの名無しさん (ワッチョイ 398a-fjL1)
2017/11/30(木) 18:07:34.67ID:kZZqjgS10 OLE複合ファイルで保存すればよろし
582デフォルトの名無しさん (ブーイモ MM8e-ckDd)
2017/11/30(木) 18:30:11.56ID:RwvI386YM 構造体配列をバイナリでrw
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 空自機レーダー照射、音声データ公開 中国 ★2 [蚤の市★]
- 中国とロシアの爆撃機、日本周辺で共同飛行 [少考さん★]
- 「中国側も日本機のレーダーを感知していた」 中国メディアが報道 [♪♪♪★]
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 高市早苗首相、消費税減税に後ろ向き 足かせはレジシステム? 「責任ある積極財政」期待高いが [蚤の市★]
- 防衛省、中国を完全論破www 「事前通告があったのは海自であって空自ではない」 高市早苗勝利 [175344491]
- 【悲惨】中国軍が自衛隊に「事前通告」し自衛隊も返答した音声が公開されてしまうwwwこれは高市チェックアウトゕ★4 [597533159]
- 【悲報】JA「全然米が売れなくて倉庫を圧迫してる。助けて!」米卸売り業者「安売りしたら赤字になる…助けて!」 [802034645]
- 韓国政府、高市早苗の「竹島領土」発言にブチギレwwwwwwwwwwwwwwww [834922174]
- 元統合幕僚長「演習通告の音声は公開されたが、レーダー照射時のものではない」高市政府「www」 [834922174]
- 【急募】佐藤健(37)さんが急にバカにされ始めた理由WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
