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/
前
http://echo.2ch.net/test/read.cgi/tech/1487757355/
http://www.geocities.jp/c_cpp_cs/about_c/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
C言語なら俺に聞け 140 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 6f8c-8ulf)
2017/05/11(木) 22:20:03.99ID:cn414UR9095デフォルトの名無しさん (ワッチョイ 23b9-8ulf)
2017/05/17(水) 16:23:04.39ID:se1pH3p/0 a = a + 1;
if (1 <= i && i <= 3 && 3 <= j && j <= 6) fprintf_s(fout, "%d ", a);
else fprintf_s(fout, "0 ");
if (1 <= i && i <= 3 && 3 <= j && j <= 6) fprintf_s(fout, "%d ", a);
else fprintf_s(fout, "0 ");
96デフォルトの名無しさん (ガックシ 067f-sbka)
2017/05/17(水) 16:24:58.51ID:IVbqBIIG697デフォルトの名無しさん (ワッチョイ cf1f-O3YC)
2017/05/17(水) 16:32:34.86ID:t3IXdrQL0 if (4 <= (a % 10) && (a % 10) <= 7) printf("%d ", a);
else printf("%d ", 0);
else printf("%d ", 0);
98デフォルトの名無しさん (ワッチョイ 8392-287W)
2017/05/17(水) 16:35:45.80ID:smeqz8ba099デフォルトの名無しさん (ガックシ 067f-sbka)
2017/05/17(水) 16:45:05.44ID:IVbqBIIG6100デフォルトの名無しさん (ワッチョイ 8392-287W)
2017/05/17(水) 16:47:44.21ID:smeqz8ba0101デフォルトの名無しさん (ドコグロ MM5f-FKuM)
2017/05/17(水) 18:12:03.01ID:sXGKWmUcM102デフォルトの名無しさん (ワントンキン MM1f-QWrk)
2017/05/17(水) 18:52:23.54ID:81y1dPE2M 初心者にありがちな無意味なコメントだね
103デフォルトの名無しさん (JP 0H67-Z6j5)
2017/05/17(水) 19:04:10.40ID:+kjRc1QwH 各行コメントつけろという教育の成果
104デフォルトの名無しさん (ワッチョイ 5378-SU9n)
2017/05/17(水) 22:14:49.58ID:trROhyaD0 QZ怒りのクソコメント
105デフォルトの名無しさん (ワッチョイ 5bc3-2WpE)
2017/05/18(木) 06:55:44.12ID:Zs9E6Q4t0 俺なら条件部分は↓のように書くかな。
if ((a >= 10) && (a < 40) && ((a % 10) >= 4) && ((a % 10) <= 7)) {
「表示する値、表示しない値を条件に判断」という雰囲気。
普段は表組みの行と列の番号(変数i, j)で制御するけど、
この問題だとaの1の桁の値とjの値が一致しないから何やら座りが悪い感じ。
a = 10*i + j + 1;
みたいに「行と列の表示位置から表示すべき値を算出」なら馴染むんだけど。
if ((a >= 10) && (a < 40) && ((a % 10) >= 4) && ((a % 10) <= 7)) {
「表示する値、表示しない値を条件に判断」という雰囲気。
普段は表組みの行と列の番号(変数i, j)で制御するけど、
この問題だとaの1の桁の値とjの値が一致しないから何やら座りが悪い感じ。
a = 10*i + j + 1;
みたいに「行と列の表示位置から表示すべき値を算出」なら馴染むんだけど。
106デフォルトの名無しさん (ドコグロ MM2f-gT+F)
2017/05/18(木) 09:33:34.39ID:9pl130wuM if(i==0&&j==9) printf(" 0¥n);
else if(i==1&&j==3) printf(" 14");
else if(i==1&&j==4) printf(" 15");
:
else printf(" 0");
else if(i==1&&j==3) printf(" 14");
else if(i==1&&j==4) printf(" 15");
:
else printf(" 0");
107デフォルトの名無しさん (ドコグロ MM62-J3Da)
2017/05/18(木) 12:47:56.59ID:Zif2rhHOM108デフォルトの名無しさん (ワッチョイ d3b9-PZTw)
2017/05/18(木) 12:52:54.23ID:Bcm8Uos60 数直線的な並べかたやね
a が10〜40 を 10 <= a <= 40 と思考して
その並びを Cの文法に適合させて 10 <= a && a <= 40
a が10〜40 を 10 <= a <= 40 と思考して
その並びを Cの文法に適合させて 10 <= a && a <= 40
109デフォルトの名無しさん (ワッチョイ d3af-gH2G)
2017/05/18(木) 20:50:09.48ID:V+1hCye70 >>104
森にお帰り
森にお帰り
110デフォルトの名無しさん (ワッチョイ ca60-THgW)
2017/05/18(木) 21:51:10.32ID:pFlTikPN0 int 変数 = 0;
do{
if(変数 != 0) printf("0〜100違う");
scanf("%d",&変数);
} while (変数 < 0 || 変数 > 100);
みたいな感じのやつどういう仕組み?
do{
if(変数 != 0) printf("0〜100違う");
scanf("%d",&変数);
} while (変数 < 0 || 変数 > 100);
みたいな感じのやつどういう仕組み?
111デフォルトの名無しさん (ワッチョイ 3e0d-Yh7p)
2017/05/19(金) 08:23:29.86ID:/7Hxktnz0 if (10 <= a && a < 40 && 4 <= a % 10 && a % 10 <= 7) {
ほらすっきり。
ほらすっきり。
112デフォルトの名無しさん (ドコグロ MM62-gT+F)
2017/05/19(金) 10:32:30.55ID:xPzfUm9BM if (a/10&3&&a%10&4) { ...
113デフォルトの名無しさん (ワッチョイ 3e0d-Yh7p)
2017/05/19(金) 13:22:27.31ID:/7Hxktnz0114デフォルトの名無しさん (ドコグロ MM62-gT+F)
2017/05/19(金) 15:12:35.10ID:xPzfUm9BM 悔しかったらもっと短くしてみ。
115デフォルトの名無しさん (ワッチョイ d3b9-PZTw)
2017/05/19(金) 15:26:11.54ID:nQP05M7h0116デフォルトの名無しさん (ワッチョイ 6f79-rE0G)
2017/05/19(金) 15:34:27.30ID:7FyDjLQd0 WannaCryの裏で「駐禁報告書」メール21万件超が大量拡散、添付ファイルは
ウイルス、銀行・カード情報など盗み取る
https://headlines.yahoo.co.jp/hl?a=20170519-00000094-impress-sci
ウイルス、銀行・カード情報など盗み取る
https://headlines.yahoo.co.jp/hl?a=20170519-00000094-impress-sci
117デフォルトの名無しさん (ブーイモ MM96-JCxV)
2017/05/19(金) 15:36:33.74ID:9d9oZwpEM >>112
それ14の判定結果からして偽じゃね?
それ14の判定結果からして偽じゃね?
118デフォルトの名無しさん (ワッチョイ d3b9-PZTw)
2017/05/19(金) 15:46:59.07ID:nQP05M7h0 きっちり優先順位をケアすれば合ってるんでないの?
10の位 & 3 (. 1 2 3 . 5 6 7 . 9
1の位 & 4 (. . . . 4 5 6 7 . .
10の位 & 3 (. 1 2 3 . 5 6 7 . 9
1の位 & 4 (. . . . 4 5 6 7 . .
119デフォルトの名無しさん (ワッチョイ 6b92-a1Gw)
2017/05/19(金) 16:12:46.81ID:huxogVYI0 >>114
特定の値域でしか正常に動作しない欠陥コード晒して、何粋がってんの?
特定の値域でしか正常に動作しない欠陥コード晒して、何粋がってんの?
120デフォルトの名無しさん (ドコグロ MM62-gT+F)
2017/05/19(金) 16:37:44.71ID:xPzfUm9BM え?
i と j が20兆でも動く必要があるの?
で、短くできた?
i と j が20兆でも動く必要があるの?
で、短くできた?
121デフォルトの名無しさん (ドコグロ MM62-gT+F)
2017/05/19(金) 16:41:42.81ID:xPzfUm9BM122デフォルトの名無しさん (ワッチョイ 6b92-a1Gw)
2017/05/19(金) 16:48:56.31ID:huxogVYI0 絶望的にセンスが悪い
> a=>10
比較一回を
> a/10&3
除算一回, 論理積一回に改悪
しかも文字数でも1文字増えている
> a=>10
比較一回を
> a/10&3
除算一回, 論理積一回に改悪
しかも文字数でも1文字増えている
123デフォルトの名無しさん (ワッチョイ d3b9-PZTw)
2017/05/19(金) 16:53:29.16ID:nQP05M7h0 i,j で分離すべきなのか a で分離すべきなのか元質問からは読み取れんし・・・
a がたまたま正の整数で良かった (負数の剰余は考えたくないw)
a がたまたま正の整数で良かった (負数の剰余は考えたくないw)
124デフォルトの名無しさん (ワッチョイ 3e0d-Yh7p)
2017/05/19(金) 17:08:03.89ID:/7Hxktnz0125デフォルトの名無しさん (ブーイモ MM96-JCxV)
2017/05/19(金) 17:10:52.81ID:9d9oZwpEM >>118
あ、そうか。確かに。
あ、そうか。確かに。
126デフォルトの名無しさん (ワッチョイ bfcd-cm4/)
2017/05/19(金) 18:23:28.28ID:fvUmn17Y0 >>122
何言ってんだコイツ
何言ってんだコイツ
127デフォルトの名無しさん (ドコグロ MM02-gT+F)
2017/05/19(金) 19:00:41.98ID:rnjvvj6OM まあまあ。
動作に関係ない仕様を思い込みで追加するのは良くないな。
「今不要なら、今書くな」だっけか。
動作に関係ない仕様を思い込みで追加するのは良くないな。
「今不要なら、今書くな」だっけか。
128デフォルトの名無しさん (ブーイモ MM76-JCxV)
2017/05/19(金) 21:31:34.84ID:91iCt1N+M yagniかkissかってところ?
129デフォルトの名無しさん (ワッチョイ ca72-ysFl)
2017/05/19(金) 21:48:07.18ID:dqcfAkCR0 C言語ってEclipseの補完が動かないのがデフォなの?
130デフォルトの名無しさん (ワッチョイ 9ec5-gT+F)
2017/05/19(金) 22:17:08.26ID:ibFM4KQv0131デフォルトの名無しさん (ワッチョイ 636e-F2TF)
2017/05/19(金) 23:37:00.55ID:jsPxGdeJ0 Cは、ライブラリがすくない。おぼえることがすくない
132デフォルトの名無しさん (ワッチョイ dea9-ysFl)
2017/05/20(土) 06:07:10.11ID:ZnY/c9+20 関数にinlineをつけて外部定義を無くせば
インライン展開されなければinline staticと違って
リンカエラーになるとおもってたんですけど、
inline staticを使ったときにはインライン展開される関数が
inlineをつけて外部定義の無くすとリンカエラーになります
なぜですか?
インライン展開されなければinline staticと違って
リンカエラーになるとおもってたんですけど、
inline staticを使ったときにはインライン展開される関数が
inlineをつけて外部定義の無くすとリンカエラーになります
なぜですか?
133デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/20(土) 08:13:36.98ID:Ykf9CvnEa >>131
野良ライブラリが多いのは多分Cが一番だろうけどな。
何かしらの言語の野良ライブラリの元はCの野良ライブラリが必要で〜とかで、Linuxじゃないと集めてられない。
Win32APIもC前提だけど、多分MSの中の人もいくつあるか把握出来てないんじゃないかな。
野良ライブラリが多いのは多分Cが一番だろうけどな。
何かしらの言語の野良ライブラリの元はCの野良ライブラリが必要で〜とかで、Linuxじゃないと集めてられない。
Win32APIもC前提だけど、多分MSの中の人もいくつあるか把握出来てないんじゃないかな。
134デフォルトの名無しさん (ワッチョイ 9e0d-Yh7p)
2017/05/20(土) 18:45:47.54ID:AtO1B5PX0 ISO/IECだってしょせんはブランドの1つでしかなく
別に数学的な公理とかじゃないからな
別に数学的な公理とかじゃないからな
135デフォルトの名無しさん (ワッチョイ cb92-5KF4)
2017/05/20(土) 19:07:14.30ID:cC3hGZmH0 無矛盾な公理的集合論は自己そのものの無矛盾性を証明する事ができない
136デフォルトの名無しさん (ワッチョイ c6c8-PCQh)
2017/05/20(土) 22:15:46.49ID:d/44g1et0 ./a.outって入力すると'.'は認識されてないと言われました
何が問題でしょうか?
何が問題でしょうか?
137片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdea-Vasm)
2017/05/20(土) 22:21:46.82ID:3NdrFBG3d >>136
コマンドプロンプトはMS-DOSのカルチャーで区切りはバックスラッシュで、MSYSやLinuxはbashのカルチャーで、スラッシュが区切りあるね。
コマンドプロンプトはMS-DOSのカルチャーで区切りはバックスラッシュで、MSYSやLinuxはbashのカルチャーで、スラッシュが区切りあるね。
138デフォルトの名無しさん (ワッチョイ afcd-cm4/)
2017/05/20(土) 22:38:50.18ID:feiyOPgg0 >>136
区切りで「/」使いたいなら、パス全体を「"」で括る
「/」以降をオプション「.」をコマンドとして認識するから、全体で一つのコマンドと認識させる必要がある
「/」を区切りに使うのはunix
windowsでも一応使えるけど普通はバックスラッシュ使う
区切りで「/」使いたいなら、パス全体を「"」で括る
「/」以降をオプション「.」をコマンドとして認識するから、全体で一つのコマンドと認識させる必要がある
「/」を区切りに使うのはunix
windowsでも一応使えるけど普通はバックスラッシュ使う
139デフォルトの名無しさん (ワッチョイ c6c8-PCQh)
2017/05/20(土) 22:52:55.54ID:d/44g1et0140片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdea-Vasm)
2017/05/20(土) 23:02:48.40ID:3NdrFBG3d bashではセキュリティ上の理由で、現在のディレクトリのプログラムを起動するのに、./が必要だが、Winのプロンプトでは不要。
141デフォルトの名無しさん (ワッチョイ afcd-cm4/)
2017/05/20(土) 23:12:15.43ID:feiyOPgg0142デフォルトの名無しさん (ワッチョイ cb92-a1Gw)
2017/05/20(土) 23:54:38.45ID:HEZORyL40 昔は.がデフォルトでPATHの先頭に入ってたな
ホームディレクトリにls置いたら面白いことになった
ホームディレクトリにls置いたら面白いことになった
143デフォルトの名無しさん (ワッチョイ b33c-ysFl)
2017/05/21(日) 11:36:43.59ID:p33VUuKu0 #include <stdio.h>
int main(void){
char i[100];
printf("名前を入力してね。\n");
scanf("%s",i);
printf("%sさんですね。\n",i);
return 0;
}
7行目scanf関数で、&iでなくて、iでいけるのはなぜですか?
int main(void){
char i[100];
printf("名前を入力してね。\n");
scanf("%s",i);
printf("%sさんですね。\n",i);
return 0;
}
7行目scanf関数で、&iでなくて、iでいけるのはなぜですか?
>>143
i の型はポインタ,すなわち char *i だから
i の型はポインタ,すなわち char *i だから
145デフォルトの名無しさん (ワッチョイ 9f92-cm4/)
2017/05/21(日) 11:44:04.43ID:JHzb8j250 >>142
&はアドレス演算子で、その変数がメモリ上のどのアドレスにあるかを示す
scanf関数で&を使うのは、つまり、「この変数のアドレスに読み取ったものを書き込め」という意味になる。
しかし文字列などの配列は、配列名自身が「配列の一番最初の要素へのアドレス」を示すものになっているので
配列には&が不必要
&はアドレス演算子で、その変数がメモリ上のどのアドレスにあるかを示す
scanf関数で&を使うのは、つまり、「この変数のアドレスに読み取ったものを書き込め」という意味になる。
しかし文字列などの配列は、配列名自身が「配列の一番最初の要素へのアドレス」を示すものになっているので
配列には&が不必要
146デフォルトの名無しさん (ワッチョイ 9e0d-Yh7p)
2017/05/21(日) 12:20:22.06ID:EhbYbiNc0147デフォルトの名無しさん (ワッチョイ 9e0d-Yh7p)
2017/05/21(日) 12:22:40.28ID:EhbYbiNc0 クズの言い方だと
float a = 1.5f;
printf("%f", a);
これが問題なく動作するから、
よって a は double 型だと言っているようなものだ
float a = 1.5f;
printf("%f", a);
これが問題なく動作するから、
よって a は double 型だと言っているようなものだ
148デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/21(日) 12:23:47.67ID:fDsf7qWsa149デフォルトの名無しさん (ワッチョイ 9ec5-gT+F)
2017/05/21(日) 12:27:36.21ID:bYtGqajI0150デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/21(日) 12:32:18.38ID:wd4rgPA1a あ、読み込み専用ってのは値が変えられないんじゃなくて、アドレスを変えられないって意味ね。
関数に渡された配列iをi++ってするとi[a++]と同じ意味になる。
(Cでi[a++]なんて書き方許されたかは忘れたが意図は組んでくれ)
関数に渡された配列iをi++ってするとi[a++]と同じ意味になる。
(Cでi[a++]なんて書き方許されたかは忘れたが意図は組んでくれ)
151デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/21(日) 12:33:01.58ID:wd4rgPA1a ポインタなら上が出来て、参照は出来ないんよ。
153デフォルトの名無しさん (ワッチョイ de1f-bwHs)
2017/05/21(日) 12:51:40.59ID:EZ567Ylh0 最近は初心者を騙すのが流行しているのか
154デフォルトの名無しさん (ワッチョイ ca72-ysFl)
2017/05/21(日) 13:33:41.41ID:LBGUGIAq0 linuxでc言語開発したいんですが、IDE使わないのが一般的なんですか?
155デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/21(日) 13:45:10.14ID:2TTm6ATPa はい。
CやJavaならEclipseが一般的かと。
Eclipseにサポートして貰ってないのはviやemacsカスタマイズしてIDEとして使う感じ。
CやJavaならEclipseが一般的かと。
Eclipseにサポートして貰ってないのはviやemacsカスタマイズしてIDEとして使う感じ。
156デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/21(日) 13:45:35.47ID:2TTm6ATPa あ、はい。は忘れてw
157デフォルトの名無しさん (ワッチョイ dea9-ysFl)
2017/05/21(日) 15:31:07.21ID:Mj8j7wxe0 >>132もおねがいします
158デフォルトの名無しさん (ワッチョイ afcd-cm4/)
2017/05/21(日) 15:34:52.30ID:kPjNSBDr0 >>157
質問文が酷すぎて、何を聞きたいのか理解されてないだけだぞ
質問文が酷すぎて、何を聞きたいのか理解されてないだけだぞ
159デフォルトの名無しさん (ワッチョイ 9ec5-gT+F)
2017/05/21(日) 16:54:32.37ID:bYtGqajI0 >>154
最近は yacc じゃなくて何か新しいのあるんだよね。
最近は yacc じゃなくて何か新しいのあるんだよね。
160デフォルトの名無しさん (ワッチョイ ca3c-J3Da)
2017/05/21(日) 17:27:25.62ID:1Ubd4ETn0 >>159
最近じゃないけど bison とかか?
最近じゃないけど bison とかか?
161デフォルトの名無しさん (ワッチョイ aa18-JCxV)
2017/05/21(日) 17:32:24.58ID:ViqOYprV0 何でいきなり構文解析器の話になった?
162デフォルトの名無しさん (ワッチョイ cb92-a1Gw)
2017/05/21(日) 17:53:33.03ID:Qv//Z9+/0163デフォルトの名無しさん (ワッチョイ 0bae-xuou)
2017/05/21(日) 17:53:37.15ID:/ema5D/U0 c言語作るって言ってるからでしょ
164デフォルトの名無しさん (ワッチョイ 9e0d-Yh7p)
2017/05/21(日) 17:59:27.49ID:EhbYbiNc0165デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/21(日) 18:06:09.69ID:zNfd0kUpa はいはい,そりゃ配列とポインタは互換じゃないよ
分かりやすい説明はないものかね‥
分かりやすい説明はないものかね‥
168デフォルトの名無しさん (ワッチョイ 6b3c-kvD5)
2017/05/21(日) 19:20:07.02ID:lXB+sVuE0 %f は 引数を double 仮定で引き出す
呼び出し側は (可変長引数の可変部なので) doubleに格上げしてから引数に詰んでる
詰んでるものと引き出すものの食い違いはおきてないんじゃないかね
呼び出し側は (可変長引数の可変部なので) doubleに格上げしてから引数に詰んでる
詰んでるものと引き出すものの食い違いはおきてないんじゃないかね
170デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/21(日) 19:29:57.61ID:zNfd0kUpa171デフォルトの名無しさん (ワッチョイ afcd-cm4/)
2017/05/21(日) 19:40:24.59ID:kPjNSBDr0 配列型の"式"は、一部のケースを除いてポインタ型の式に"型変換"される、それは配列の先頭要素を指す、また左辺値でもない
関数の実引数での使用についてなら、>>147の既定の実引数拡張でfloatがdoubleに拡張(型変換)される例と同じような話だと思うんだけどな
関数の実引数での使用についてなら、>>147の既定の実引数拡張でfloatがdoubleに拡張(型変換)される例と同じような話だと思うんだけどな
172デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/21(日) 20:10:14.64ID:zNfd0kUpa >>146
おいらはこれ、sizeofが関数じゃなくて演算子って呼ばれてるのが肝で、関数に配列渡しても何故かポインタのサイズじゃなくて配列サイズ返す謎な奴って解釈してるな。
おいらはこれ、sizeofが関数じゃなくて演算子って呼ばれてるのが肝で、関数に配列渡しても何故かポインタのサイズじゃなくて配列サイズ返す謎な奴って解釈してるな。
173デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/21(日) 20:19:46.42ID:8VZiX6Z0a174デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/21(日) 20:24:04.46ID:8VZiX6Z0a >>146
これは配列宣言した場所と同じスコープなら配列のサイズ返すけど、配列を関数に渡した先(関数の中)でこれするとポインタのサイズが返ってくる。
これは配列宣言した場所と同じスコープなら配列のサイズ返すけど、配列を関数に渡した先(関数の中)でこれするとポインタのサイズが返ってくる。
175デフォルトの名無しさん (ワッチョイ ca72-ysFl)
2017/05/21(日) 21:28:16.83ID:LBGUGIAq0 >>155
ありがとう
ありがとう
176デフォルトの名無しさん (ワッチョイ 9e0d-Yh7p)
2017/05/21(日) 21:39:54.59ID:EhbYbiNc0 >>174
int main(void)
{
char i[100];
wanker(&i);
return 0;
}
void wanker(char (*j)[100])
{
/* ここは、「配列を関数に渡した先(関数の中)」だが? */
printf("%u", sizeof *j);
}
int main(void)
{
char i[100];
wanker(&i);
return 0;
}
void wanker(char (*j)[100])
{
/* ここは、「配列を関数に渡した先(関数の中)」だが? */
printf("%u", sizeof *j);
}
177デフォルトの名無しさん (ワッチョイ 9e0d-Yh7p)
2017/05/21(日) 21:45:09.31ID:EhbYbiNc0178デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/21(日) 21:53:31.38ID:8VZiX6Z0a179デフォルトの名無しさん (ワッチョイ 9e0d-Yh7p)
2017/05/21(日) 22:00:12.54ID:EhbYbiNc0 >>178
どう無理なんだ?
int main(void)
{
int i[100];
booger(&i);
return 0;
}
void booger(int (*j)[100])
{
printf("%u", sizeof *j);
}
どう無理なんだ?
int main(void)
{
int i[100];
booger(&i);
return 0;
}
void booger(int (*j)[100])
{
printf("%u", sizeof *j);
}
180デフォルトの名無しさん (ワッチョイ 6b3c-kvD5)
2017/05/21(日) 22:02:18.84ID:lXB+sVuE0 いやいや sizeof はコンパイル時に確定する演算だから
strlen みたいにポインタの指し先追っかけてデリミタ見つかるまでのバイト数とか 実行時依存じゃない
strlen みたいにポインタの指し先追っかけてデリミタ見つかるまでのバイト数とか 実行時依存じゃない
181デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/21(日) 22:08:35.89ID:8VZiX6Z0a182デフォルトの名無しさん (ワッチョイ 6b3c-kvD5)
2017/05/21(日) 22:10:30.59ID:lXB+sVuE0 だから sizeof は型さえ類推できれば、変数の実態なくてもいいんだって
なんなら () 付けて 型をかけばいい
なんなら () 付けて 型をかけばいい
183デフォルトの名無しさん (ワッチョイ 9e0d-Yh7p)
2017/05/21(日) 22:10:36.85ID:EhbYbiNc0 176でも初期化はしてないが
184デフォルトの名無しさん (ワッチョイ 9e0d-Yh7p)
2017/05/21(日) 22:13:36.56ID:EhbYbiNc0185デフォルトの名無しさん (ワッチョイ 6b3c-kvD5)
2017/05/21(日) 22:15:17.46ID:lXB+sVuE0186デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/21(日) 22:39:46.18ID:fA6hmJLUa >>179
分かってきたかも。
そのコードだと
int *i;
ってポインタ宣言すると
iのままがポインタで、*iがポインタの指す中身だから。。。
配列の実体になるんだ。
もっとシンプルに初心者のやりがちな
int main(void)
{
int i[100];
booger(i[100]);
return 0;
}
void booger(int i[100])
{
printf("%u",sizeof a[100]);
}
こう言うコードだとポインタのサイズが返ってくる。
分かってきたかも。
そのコードだと
int *i;
ってポインタ宣言すると
iのままがポインタで、*iがポインタの指す中身だから。。。
配列の実体になるんだ。
もっとシンプルに初心者のやりがちな
int main(void)
{
int i[100];
booger(i[100]);
return 0;
}
void booger(int i[100])
{
printf("%u",sizeof a[100]);
}
こう言うコードだとポインタのサイズが返ってくる。
187デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/21(日) 22:41:32.99ID:fA6hmJLUa ちゅーか十何年ぶりのCだったわ。。。
188デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/21(日) 22:44:28.27ID:fA6hmJLUa sizeof a[100]はタイポだけど許してね。
配列の変数名にiとか普通使わんのよ。
インデックス変数に使うからさ。
a[i]
配列の変数名にiとか普通使わんのよ。
インデックス変数に使うからさ。
a[i]
189デフォルトの名無しさん (ワッチョイ dea9-ysFl)
2017/05/22(月) 06:47:21.18ID:3isejMaU0 void f(void * v, int size, void * x){
*v=*x;
}
上のコードで x の指し示す値のサイズが size であるとき
どのようにvの指し示す場所にxが指し示す値を一度に代入できますか?
*v=*x;
}
上のコードで x の指し示す値のサイズが size であるとき
どのようにvの指し示す場所にxが指し示す値を一度に代入できますか?
190デフォルトの名無しさん (ワッチョイ cb92-z8Tc)
2017/05/22(月) 07:31:20.24ID:uEzgaoxk0 memcpy(*v, *x, size);
191デフォルトの名無しさん (ワッチョイ cb92-z8Tc)
2017/05/22(月) 07:34:49.91ID:uEzgaoxk0 訂正
memcpy(v, x, size);
memcpy(v, x, size);
192デフォルトの名無しさん (ワッチョイ db8c-wnF3)
2017/05/22(月) 07:37:02.82ID:qnT1Y5yL0 >>189
学校の宿題か?
学校の宿題か?
193デフォルトの名無しさん (ワッチョイ 03b9-PZTw)
2017/05/22(月) 08:26:47.95ID:jL5+dSxZ0 for (i=0; i<size; i++) ((int8_t*)v)[i] = ((int8_t*)x)[i];
194デフォルトの名無しさん (ワッチョイ 9e0d-Yh7p)
2017/05/22(月) 09:21:02.66ID:uUtJqX7+0 while(size--) *(char*)v++ = *(char*)x++;
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- サナエノミクスについて力説 積極的な財政出動で「所得増える 消費マインド上がる 税収増える」片山さつき財務大臣 ★3 [少考さん★]
- 中国軍機のレーダー照射1週間 駆け引き続く 中国、米のレッドライン模索 日本、米以外の同志国とも連携探る 米は対立から距離置く★2 [ぐれ★]
- 鈴木農相「おこめ券はお米しか買えないわけではない。例えば卵、味噌、しょうゆ、こうした購入に利用可能」 ★4 [Hitzeschleier★]
- 【芸能】粗品、日本テレビに苦言 客のレベルが「かなり低い。あいつら分かってない」「拍手したいだけやねん」 [冬月記者★]
- 橋下徹氏「総理なら岡田さんに何を聴かれても耐えてほしかった」 高市首相の台湾有事めぐる答弁に# [jinjin★]
- 【静岡】伊東市長選、前市議の杉本氏初当選 学歴詐称疑惑の田久保氏は及ばず 市長選3700万円、市議選6300万円の計1億円費やされる [ぐれ★]
- 誰もいない....ワショーイするなら今のうち
- 上野動物園の双子パンダ、来月中国に返還へ。50年ぶりに国内でパンダ不在 [545512288]
- 名家、斧命粉女家、当主太蔵。細君泰子と3子をもうける
- 悪夢しか見ないわ
- 日本のアニメが世界でウケてるのって結局萌えアニメだからだろ?
- 岩手県警、公文書偽造をした警察官を減給処分のみ。法定刑は1年以上10年以下の懲役だが… [776365898]
