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://mevius.2ch.net/test/read.cgi/tech/1500293207/
http://www.geocities.jp/c_cpp_cs/about_c/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
C言語なら俺に聞け 142 [無断転載禁止]©2ch.net
レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 8a6f-bDrV)
2017/08/10(木) 20:21:23.44ID:hEocmkh50889名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ 3a23-0GSP)
2017/10/22(日) 13:39:13.59ID:f5TzHp7R0 質問です。ポインタ変数を用いてキーボードから入力された5つの整数を配列xに保存し、その要素の列挙と合計値を求めるプログラムを作ったのですが、
#include <stdio.h>
#include <stdlib.h>
int main (void){
int *p,x[4],sum=0,i,j;
p=&x[0];
for(i=0;i<=4;i++){
printf("%dつ目の整数を入力してください ",i+1);
scanf("%d",p);
sum=sum+*p; }
for(j=0;j<=4;j++){
printf("%d ",*(p+j));} /*配列の要素を列挙*/
printf("\n和=%d",sum); /*配列の要素の和*/
return 0;}
で、結果が
1つ目の整数を入力してください 1
2つ目の整数を入力してください 2
3つ目の整数を入力してください 3
4つ目の整数を入力してください 4
5つ目の整数を入力してください 5
5 4200864 6422368 4200955 6422288
和=15
となり、要素の列挙がうまくいかないので対策を教えていただきたいです。
#include <stdio.h>
#include <stdlib.h>
int main (void){
int *p,x[4],sum=0,i,j;
p=&x[0];
for(i=0;i<=4;i++){
printf("%dつ目の整数を入力してください ",i+1);
scanf("%d",p);
sum=sum+*p; }
for(j=0;j<=4;j++){
printf("%d ",*(p+j));} /*配列の要素を列挙*/
printf("\n和=%d",sum); /*配列の要素の和*/
return 0;}
で、結果が
1つ目の整数を入力してください 1
2つ目の整数を入力してください 2
3つ目の整数を入力してください 3
4つ目の整数を入力してください 4
5つ目の整数を入力してください 5
5 4200864 6422368 4200955 6422288
和=15
となり、要素の列挙がうまくいかないので対策を教えていただきたいです。
890名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ 7ad2-eNpY)
2017/10/22(日) 13:49:53.88ID:rI45lLhS0 そりゃ最初に p に代入した同じ入れ物に入力値を保存してるからね。
++p とかしてみたら?
++p とかしてみたら?
891名無しさん@そうだ選挙に行こう! Go to vote! (ササクッテロラ Sp85-DwBb)
2017/10/22(日) 13:55:57.90ID:pqhboyRRp 素直に配列使え。
892名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ a593-+4Iz)
2017/10/22(日) 14:15:34.40ID:m20yJ7cw0 scanf() での値の格納先 (== sumに加える値の参照先) である p を
初期化時の &x[0] のまま進めてないから入力した値が上書きされるんだよ。
もちろん x[1], x[2], ... には値が入らない。
質問の趣旨と関係ない部分を指摘して混乱させるつもりはないんだけど、
配列 x[] の要素数が足りないのがオジさん気になるなぁ。
初期化時の &x[0] のまま進めてないから入力した値が上書きされるんだよ。
もちろん x[1], x[2], ... には値が入らない。
質問の趣旨と関係ない部分を指摘して混乱させるつもりはないんだけど、
配列 x[] の要素数が足りないのがオジさん気になるなぁ。
893名無しさん@そうだ選挙に行こう! Go to vote! (アウアウウー Sa89-PVu7)
2017/10/22(日) 15:12:18.96ID:2+N8xzsVa >>889
既に>>890-892が指摘済みだけど
#include <stdio.h>
#include <stdlib.h>
int main (void){
int *p,x[5],sum=0,i,j; /* x[5] */
p = x;
for(i = 0;i <= 4; i++, p++){
printf("%dつ目の整数を入力してください ",i+1);
scanf("%d", p);
sum += *p;
}
p = x; /* ポインタの参照位置を配列先頭へ */
for(j = 0; j <= 4; j++){
printf("x[%d]=%d, ", j, *(p+j) );
}/*配列の要素を列挙*/
printf("\n和=%d\n ",sum); /*配列の要素の和*/
return 0;
}
既に>>890-892が指摘済みだけど
#include <stdio.h>
#include <stdlib.h>
int main (void){
int *p,x[5],sum=0,i,j; /* x[5] */
p = x;
for(i = 0;i <= 4; i++, p++){
printf("%dつ目の整数を入力してください ",i+1);
scanf("%d", p);
sum += *p;
}
p = x; /* ポインタの参照位置を配列先頭へ */
for(j = 0; j <= 4; j++){
printf("x[%d]=%d, ", j, *(p+j) );
}/*配列の要素を列挙*/
printf("\n和=%d\n ",sum); /*配列の要素の和*/
return 0;
}
894名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ 3a23-0GSP)
2017/10/22(日) 15:20:05.53ID:f5TzHp7R0 大学で勉強し始めたばかりなので全然で…
みなさんありがとうございました。
みなさんありがとうございました。
895名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ 7a87-DwBb)
2017/10/22(日) 15:27:37.67ID:NaoIEEjs0 まあ、なんでポインタに拘るのかわからんが、
つうか、書きと読みでアクセス方法は合わせた方がいいと思うが、
動きゃいいかw
つうか、書きと読みでアクセス方法は合わせた方がいいと思うが、
動きゃいいかw
896名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ daf9-3CFD)
2017/10/22(日) 15:34:28.08ID:rLWliBun0 学習をし始めた頃は敢えてポインタを使っていろんな書き方を試してみるのもいいと思う。
数をこなすうちに自然とよい書き方に気づくと思う。
数をこなすうちに自然とよい書き方に気づくと思う。
897名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ cee7-h3yZ)
2017/10/22(日) 16:41:26.75ID:iiKpFSsu0 起動の度に外部ファイルで変数の初期値を変えて起動したいんだけどどうすんの?
898名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ a58c-REa2)
2017/10/22(日) 16:53:41.42ID:utzmEkdP0 外部ファイルを読んで変数に代入する
899名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ cee7-h3yZ)
2017/10/22(日) 17:06:30.45ID:iiKpFSsu0 外部ファイルに変数名と初期値を書いておきたい
900名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ 6dc3-Ja3g)
2017/10/22(日) 17:11:49.57ID:Qdw/5tAf0 環境依存だし基本的に無理
バッチなりシェルスクリプトに記述しといてコマンドライン引数で渡す方が建設的
バッチなりシェルスクリプトに記述しといてコマンドライン引数で渡す方が建設的
901名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ a593-+4Iz)
2017/10/22(日) 18:05:00.75ID:m20yJ7cw0 ソースに書いてない変数を実行時に導入したいってのとは違うんでないか?
あらかじめ外部ファイルで値を設定できる変数は決まっていて、
要するにリソースファイルみたいな使い方をしたいのかも知れん。
fscanf(fp, "%s=%d\n", varname, &varval);
if (strcmp(varname, "width") == 0) {
width = varval;
} else if (strcmp(varname, "height") == 0) {
height = varval;
} else {
fprintf(stderr, "cannot use variable '%s'\n", varname);
}
みたいな感じ?
この場で書いてるから洗練されてないし、動くか怪しいけど。
あらかじめ外部ファイルで値を設定できる変数は決まっていて、
要するにリソースファイルみたいな使い方をしたいのかも知れん。
fscanf(fp, "%s=%d\n", varname, &varval);
if (strcmp(varname, "width") == 0) {
width = varval;
} else if (strcmp(varname, "height") == 0) {
height = varval;
} else {
fprintf(stderr, "cannot use variable '%s'\n", varname);
}
みたいな感じ?
この場で書いてるから洗練されてないし、動くか怪しいけど。
902名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ 7a87-DwBb)
2017/10/22(日) 18:08:18.57ID:NaoIEEjs0 人が読み書きしない前提なら、構造体の領域をまるまんま読み書きしてしまえば楽だぜ。
903名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ 5581-/wYC)
2017/10/22(日) 18:09:51.31ID:4HKeVMJe0 動作時に殆ど変えない値ならファイルで良いかもしれないが
起動の都度値を変化させたいなら、コマンドラインの方が良いぞ
起動の都度値を変化させたいなら、コマンドラインの方が良いぞ
904901 (ワッチョイ a593-+4Iz)
2017/10/22(日) 18:29:59.97ID:m20yJ7cw0 >>901 で使った「リソースファイル」って言葉は曖昧だったね。
「設定ファイル」の方が通りがよかったかも。
皆さん文脈から分かってくれると思うけど、
VisualStudio なんかで別の意味で使う言葉だし。
「設定ファイル」の方が通りがよかったかも。
皆さん文脈から分かってくれると思うけど、
VisualStudio なんかで別の意味で使う言葉だし。
905名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ 812d-OJdz)
2017/10/22(日) 18:44:14.78ID:IdeA6XVs0 「鶏を割くに焉んぞ牛刀を用いん」とも言えるけど
json,yaml,tomlなんかの読み込みライブラリ使うとか
Lua,Pythonを組み込むとかも一応回答としてはありかもね
json,yaml,tomlなんかの読み込みライブラリ使うとか
Lua,Pythonを組み込むとかも一応回答としてはありかもね
906デフォルトの名無しさん (スプッッ Sd7a-+59V)
2017/10/22(日) 20:27:33.99ID:Cn2ZDyn4d907デフォルトの名無しさん (ワッチョイ 7a8a-WXi2)
2017/10/22(日) 20:32:16.01ID:EROQgIiX0908デフォルトの名無しさん (ワッチョイ a108-1OZr)
2017/10/22(日) 21:19:51.70ID:bXoG3HvV0 メインフレームでDIAGNOSEを使うときなんか
WCSのアドレスを指定とかね
WCSのアドレスを指定とかね
909デフォルトの名無しさん (ワッチョイ 8dd2-U5aN)
2017/10/23(月) 01:07:16.21ID:mBA7Qm4F0 スタック変数いらねえな
グローバル変数で性能追求しようぜ
グローバル変数で性能追求しようぜ
910デフォルトの名無しさん (ワッチョイ a58c-REa2)
2017/10/23(月) 01:22:42.10ID:gdiUlDLR0 6502のゼロページが全部レジスタだと思い込んでるような記述がたまにあるけど
普通にメモリだよ
普通にメモリだよ
911デフォルトの名無しさん (ワッチョイ 8dd2-U5aN)
2017/10/23(月) 01:37:37.69ID:mBA7Qm4F0 オペランドを8bitに限定してコード効率上げるってのがゼロページの発想でしょ
メモリ素子が高価な時代の涙ぐましい仕組みのひとつ
メモリ素子が高価な時代の涙ぐましい仕組みのひとつ
912デフォルトの名無しさん (ワッチョイ 5581-/wYC)
2017/10/23(月) 01:46:50.56ID:EhEnOqp90 CPUの一時キャッシュメモリをレジスタ変数に割り当てる方が速いんじゃないか?
913デフォルトの名無しさん (ワッチョイ a593-+4Iz)
2017/10/23(月) 05:14:49.57ID:u4PJ0rqa0914デフォルトの名無しさん (ワッチョイ ddb3-0GSP)
2017/10/23(月) 05:45:57.83ID:iFI38Dlw0 %%%%1000%%%%
000-[HUM%58*73.1\%]/2I/3NM/61.3SNMK%?%3%51.22222222222221%
001-[[[%6/4$17.6135412α3]]]]+DOM+SIL+7%
002-UML7%[61.2[31.5[!%32∂LM17.36%!16.3!%<<<%!HSTOL7%!Q!S!=3m=<2TOL<3Q9A<2.1GHz%,DOK,HAOARA,
003-[[[HEMLOT47[<\41.2%Q,===>[MLS<DPNO<\2.3>#ESOLA!5%!3MLA!>LTOSA>7TONSA>%>%end
000-[HUM%58*73.1\%]/2I/3NM/61.3SNMK%?%3%51.22222222222221%
001-[[[%6/4$17.6135412α3]]]]+DOM+SIL+7%
002-UML7%[61.2[31.5[!%32∂LM17.36%!16.3!%<<<%!HSTOL7%!Q!S!=3m=<2TOL<3Q9A<2.1GHz%,DOK,HAOARA,
003-[[[HEMLOT47[<\41.2%Q,===>[MLS<DPNO<\2.3>#ESOLA!5%!3MLA!>LTOSA>7TONSA>%>%end
915デフォルトの名無しさん (ワッチョイ 19a5-FNU/)
2017/10/23(月) 17:06:19.86ID:WoZMAj8B0 ルネサスRXなんかもレジスタがメモリマップされてるな
アクセス禁止領域だけど
アクセス禁止領域だけど
916デフォルトの名無しさん (フリッテル MM5e-q5Ly)
2017/10/23(月) 19:08:39.57ID:Ob3tZ8JSM SFRと汎用レジスタの区別が出来ない奴
917デフォルトの名無しさん (ワッチョイ 7a87-DwBb)
2017/10/23(月) 19:25:26.97ID:nagTo3YF0 >>915
そこって、デバッガがCPUレジスタ参照する為の窓だから、プログラムがその領域指すと、デバッグが困難になるから禁止してるんじゃね?
そこって、デバッガがCPUレジスタ参照する為の窓だから、プログラムがその領域指すと、デバッグが困難になるから禁止してるんじゃね?
918デフォルトの名無しさん (ワッチョイ 7a87-DwBb)
2017/10/23(月) 19:29:22.87ID:nagTo3YF0 デバッガー専用の作業メモリー領域もプログラムから使用禁止だったりするだろ?
919デフォルトの名無しさん (ワッチョイ c575-G561)
2017/10/23(月) 19:30:14.37ID:HemzWECS0 レクサスRXに見えた
920デフォルトの名無しさん (ワッチョイ 19a5-FNU/)
2017/10/23(月) 20:21:25.70ID:WoZMAj8B0 >>917
その通りだと思うよ
その通りだと思うよ
921デフォルトの名無しさん (ワッチョイ 19a5-FNU/)
2017/10/23(月) 20:22:52.11ID:WoZMAj8B0 >>916
sfrをアクセス禁止領域に置いてどーすんだよw
sfrをアクセス禁止領域に置いてどーすんだよw
922デフォルトの名無しさん (ワッチョイ 7a87-DwBb)
2017/10/23(月) 20:30:23.77ID:nagTo3YF0923デフォルトの名無しさん (ワッチョイ 7a87-DwBb)
2017/10/23(月) 20:37:44.96ID:nagTo3YF0 あ、レス間違えたわw
924デフォルトの名無しさん (ワッチョイ ce9f-ZHsf)
2017/10/24(火) 03:02:06.36ID:75BFZUbG0 int i=1,n
n=i/2*2
n=0になる理由教えてください
n=i/2*2
n=0になる理由教えてください
925デフォルトの名無しさん (ワッチョイ a568-OJdz)
2017/10/24(火) 03:50:48.19ID:senjN+vb0 int型は小数が扱えないので0方向に丸められる
926デフォルトの名無しさん (ワッチョイ fa7c-OFe0)
2017/10/24(火) 05:57:30.66ID:2rmlfNW20927デフォルトの名無しさん (ワッチョイ 6d76-tDmH)
2017/10/24(火) 06:48:50.75ID:kt50Dt6N0 負の除算の丸め方は処理系依存
928デフォルトの名無しさん (ワッチョイ c5b3-U5aN)
2017/10/24(火) 07:33:37.46ID:VjHIGh6G0 左結合で i/2 の後に *2 が処理される
整数どおしの除算なので丸めが発生
丸めた値に 乗算が行われる
整数どおしの除算なので丸めが発生
丸めた値に 乗算が行われる
929デフォルトの名無しさん (ワッチョイ ce9f-ZHsf)
2017/10/24(火) 07:45:07.35ID:75BFZUbG0 おおおお!
なるほど!ありがとうございます!
なるほど!ありがとうございます!
930デフォルトの名無しさん (ワッチョイ c5eb-cn1a)
2017/10/24(火) 12:07:36.73ID:SPAXueit0 int func(int) は、引数が int 型で、int 型の値を返す関数
int func(void) は、引数が無しで、int 型の値を返す関数
というのは分かったのですが
int func() のように () の中が空の場合は、どうゆう意味になりますか?
int func(void) と同じ?
int func(void) は、引数が無しで、int 型の値を返す関数
というのは分かったのですが
int func() のように () の中が空の場合は、どうゆう意味になりますか?
int func(void) と同じ?
931デフォルトの名無しさん (ガックシ 06ee-G561)
2017/10/24(火) 12:12:42.21ID:b8RDVE7X6932デフォルトの名無しさん (ワッチョイ c5eb-cn1a)
2017/10/24(火) 12:24:20.33ID:SPAXueit0 わかりました、ありがとうございます
933デフォルトの名無しさん (ワッチョイ 4e8a-JMxd)
2017/10/24(火) 12:51:09.78ID:k+hUXLmG0 >>931
包茎手術じゃなくて脱毛で良かったな
包茎手術じゃなくて脱毛で良かったな
934デフォルトの名無しさん (ワッチョイ 8dd2-U5aN)
2017/10/24(火) 13:44:26.08ID:/a/Ldfbw0 DMAでも使うならともかく
レジスタをメモリ空間にマッピングする利点なんてないだろ
レジスタをメモリ空間にマッピングする利点なんてないだろ
935デフォルトの名無しさん (ワントンキン MM8a-WXi2)
2017/10/24(火) 13:58:10.44ID:48RRVnNoM PCI以降DMAでデータ転送なんてのは無い。
あるのはバースト転送モードだ。
当然、転送に必要なレジスタはメモリにマッピングされている。
あるのはバースト転送モードだ。
当然、転送に必要なレジスタはメモリにマッピングされている。
936デフォルトの名無しさん (ササクッテロラ Sp85-DwBb)
2017/10/24(火) 14:14:56.50ID:gWGoT/ywp >>934
むしろデメリットさえあるな。だからデバッガが使う以外は利用されてないだろ?
むしろデメリットさえあるな。だからデバッガが使う以外は利用されてないだろ?
937デフォルトの名無しさん (ワッチョイ cee7-h3yZ)
2017/10/24(火) 14:24:36.56ID:fybDUnFS0 ふふ、トヨ〇の要求。今は知らん。
938デフォルトの名無しさん (ガックシ 06ee-G561)
2017/10/24(火) 16:20:50.45ID:b8RDVE7X6 まだやってたのかよレジスタ
939デフォルトの名無しさん (ササクッテロラ Sp85-DwBb)
2017/10/24(火) 18:07:58.27ID:gWGoT/ywp 内部レジスタと外部レジスタは意味がまるっきり違うんだがなぁ
940デフォルトの名無しさん (ワッチョイ 5581-/wYC)
2017/10/24(火) 18:48:56.59ID:ffssQfLj0 >>939
二重帳簿やっているように聞こえる
二重帳簿やっているように聞こえる
941デフォルトの名無しさん (ワッチョイ 559f-0GSP)
2017/10/25(水) 01:31:11.21ID:a9TiLHl10 >>930
同じなんだけどコンパイル時の引数チェックをしなくなる。
int func(void) の関数に対して func(123) みたいにして呼ぶとコンパイルエラーだが
int func() の関数に対して func(123) で呼び出す記述があってもエラーにならない。
なんでこうなっているのかというと、昔のCにはvoidがなくて引数なしの関数は
int func() のように書くしか方法がなく、尚且つ昔のC言語は引数のチェックを
していなかったため。つまり過去のC言語ソースをコンパイルできるようにする
ためにこのような記述が残されている。今となっては余程の事がない限りこんな
書き方はしない方が良い。バグの元だ。
同じなんだけどコンパイル時の引数チェックをしなくなる。
int func(void) の関数に対して func(123) みたいにして呼ぶとコンパイルエラーだが
int func() の関数に対して func(123) で呼び出す記述があってもエラーにならない。
なんでこうなっているのかというと、昔のCにはvoidがなくて引数なしの関数は
int func() のように書くしか方法がなく、尚且つ昔のC言語は引数のチェックを
していなかったため。つまり過去のC言語ソースをコンパイルできるようにする
ためにこのような記述が残されている。今となっては余程の事がない限りこんな
書き方はしない方が良い。バグの元だ。
942デフォルトの名無しさん (ワッチョイ cee7-LaKm)
2017/10/25(水) 15:47:29.67ID:Ls3qnFv30 ヤフー知恵袋って色んな奴がC言語勉強してるやつがいるな、素人みたいな質問やら専門的な質問や大学の問題の質問やらのプログラミング質問が
943デフォルトの名無しさん (ワッチョイ 51c9-aYWJ)
2017/10/25(水) 17:13:54.92ID:3egWGIK90944デフォルトの名無しさん (ワッチョイ d681-0GSP)
2017/10/25(水) 18:14:39.48ID:2J1yyAIT0945デフォルトの名無しさん (ワッチョイ 7a8a-WXi2)
2017/10/25(水) 18:15:57.84ID:16XMr+7o0 DDOS攻撃してサイト毎潰す
946デフォルトの名無しさん (ワッチョイ cee7-LaKm)
2017/10/25(水) 18:20:37.33ID:Ls3qnFv30 >>944
まず何のプログラミングか言わなきゃダメでしょうみんなプロだから挙動で読めちゃう人いるけどさ
まず何のプログラミングか言わなきゃダメでしょうみんなプロだから挙動で読めちゃう人いるけどさ
947デフォルトの名無しさん (ワッチョイ c575-G561)
2017/10/25(水) 18:28:36.51ID:Ho4Id2OA0 >>944
printfでNULL->valueをしてるから
printfでNULL->valueをしてるから
948デフォルトの名無しさん (ワッチョイ d681-0GSP)
2017/10/25(水) 18:35:07.38ID:2J1yyAIT0949デフォルトの名無しさん (ワッチョイ 5581-3lto)
2017/10/25(水) 19:06:17.58ID:N2zX2Cru0 void hoge(data_t **data, int value) {
*data = NULL;
*data = malloc(sizeof(data_t));
if (data == NULL) return;
(*data)->value = value;
}
呼び出しを
hoge(&data,10);
これではどうか
*data = NULL;
*data = malloc(sizeof(data_t));
if (data == NULL) return;
(*data)->value = value;
}
呼び出しを
hoge(&data,10);
これではどうか
950デフォルトの名無しさん (ワッチョイ 5581-3lto)
2017/10/25(水) 19:07:10.40ID:N2zX2Cru0 if (*data == NULL) return;
ここ間違えた、訂正
ここ間違えた、訂正
951デフォルトの名無しさん (ワッチョイ d681-0GSP)
2017/10/25(水) 19:12:01.89ID:2J1yyAIT0952デフォルトの名無しさん (ワッチョイ c575-G561)
2017/10/25(水) 19:16:50.46ID:Ho4Id2OA0 そういうことか
全然分からんかった
引数に受け渡されたポインタ変数のコピーに新しく確保したメモリのアドレス入れても呼び出し元のポインタ変数はなんも変化しないのか
全然分からんかった
引数に受け渡されたポインタ変数のコピーに新しく確保したメモリのアドレス入れても呼び出し元のポインタ変数はなんも変化しないのか
953デフォルトの名無しさん (ワッチョイ c5b3-VJ/D)
2017/10/25(水) 19:21:03.77ID:BohOgQqE0 引数で int の変数を書き換えても 呼び出し元には伝わらない それの延長線
int を data_t* に読み替えれば同じ理屈よ
int を data_t* に読み替えれば同じ理屈よ
954デフォルトの名無しさん (ワッチョイ cee7-LaKm)
2017/10/25(水) 20:39:40.86ID:Ls3qnFv30 俺の頭じゃあ理解できなかったわアロー関数は苦手だ、ここには天才がやっぱいるわ
955デフォルトの名無しさん (ワッチョイ d6e8-bcII)
2017/10/25(水) 22:59:11.01ID:SHE9E59e0 この程度でプロとか天才とかw レベル低っ
956デフォルトの名無しさん (ワッチョイ 7ad2-eNpY)
2017/10/25(水) 23:31:22.55ID:A9sEwxck0 追い詰められてる時って、ちょっとしたことを見落としたりしがちだし。
そういうときにちょっとしたつまらない問題点を指摘してくれる人が神様に思えることはある。
本当に何でこれに気づかない?って問題に延々と気づかないことあるから。
そういうときにちょっとしたつまらない問題点を指摘してくれる人が神様に思えることはある。
本当に何でこれに気づかない?って問題に延々と気づかないことあるから。
957デフォルトの名無しさん (ワッチョイ 7181-/MqV)
2017/10/26(木) 01:05:20.57ID:WmOJzpQL0 実務の世界だと、開発リーダーにとっては、この程度はさらさらと書いて欲しいと思うだろうな
この辺の考え方が理解できてないと、構造体を使ったリスト構造、木構造が作れないと思う
この辺の考え方が理解できてないと、構造体を使ったリスト構造、木構造が作れないと思う
958デフォルトの名無しさん (ワッチョイ 7102-rVGZ)
2017/10/26(木) 01:22:11.08ID:FPgm8C1h0 急に語り出したぞ、おい
959デフォルトの名無しさん (ワッチョイ 719f-a4mA)
2017/10/26(木) 03:22:11.49ID:kwyo2eDl0 リスト構造、木構造という言葉がわからなかったのかな?
960デフォルトの名無しさん (ワッチョイ 1b11-mlZ6)
2017/10/26(木) 03:35:02.17ID:ByFyiJTd0 分からなくてもググれば速攻定義出ますがな
961デフォルトの名無しさん (ワッチョイ 9193-cGPg)
2017/10/26(木) 06:24:41.35ID:8UQnYlEC0962デフォルトの名無しさん (ガックシ 068b-rVGZ)
2017/10/26(木) 10:26:24.17ID:Z8IKw2VS6 リスト構造木構造とか理系大学の情報系科目で誰でもやるがな
こんなところ見てる奴が知らんわけないだらアホ
こんなところ見てる奴が知らんわけないだらアホ
963デフォルトの名無しさん (ササクッテロラ Sp9d-aRZk)
2017/10/26(木) 10:46:18.77ID:DmfMCHFwp リストもツリーも基本の構造は一緒だろ。
ただ、鎖ね繋がってる数が違うから、
扱いが違うだけでな。
ただ、鎖ね繋がってる数が違うから、
扱いが違うだけでな。
964デフォルトの名無しさん (アウアウカー Saed-Lg7W)
2017/10/26(木) 12:26:11.84ID:nuX2FTeTa 文系経済学部ですわ
965デフォルトの名無しさん (ドコグロ MM3d-DDuF)
2017/10/26(木) 12:46:06.22ID:oyaJ8gC3M966デフォルトの名無しさん (ガックシ 068b-rVGZ)
2017/10/26(木) 12:51:34.13ID:jbwuNtau6 >>965
リスト構造とか知ってるからってポインタ受け渡しのトリックに気付くとは限らんだろ
リスト構造とか知ってるからってポインタ受け渡しのトリックに気付くとは限らんだろ
967デフォルトの名無しさん (ワッチョイ ebea-ZNPd)
2017/10/26(木) 13:41:10.56ID:VaLFaSbf0 怪しくなったら戻り値で返せ
968デフォルトの名無しさん (ブーイモ MMc5-nyI1)
2017/10/26(木) 14:50:55.37ID:ujDNQjK/M そういうときに限って二つ返したくなる
969デフォルトの名無しさん (ワッチョイ 1be7-J/p5)
2017/10/26(木) 18:29:14.01ID:l+WAoJAx0 自分の知ってる関数解ってる宣言の仕方ならわかるけどさ解らない奴使ってたらもう変数が動いてるかわからんだろう
そうなったらもう謎でコードなんか読めないだろ?
そうなったらもう謎でコードなんか読めないだろ?
970デフォルトの名無しさん (ワッチョイ ebe8-nu9H)
2017/10/26(木) 18:40:00.02ID:6866r+hk0 んなこたぁ、ない
971デフォルトの名無しさん (ワッチョイ d1b3-ZNPd)
2017/10/26(木) 18:44:09.81ID:AI1MxGuX0 引数の書き戻し系は 渡すときに値を必要としてるのかどうかは仕様次第なので 少し気を使う
972デフォルトの名無しさん (ササクッテロラ Sp9d-jmG0)
2017/10/26(木) 20:03:01.42ID:DmfMCHFwp それより、そのアドレスはアクセス権のある場所を指してるんだよな?
973デフォルトの名無しさん (ドコグロ MM3d-DDuF)
2017/10/26(木) 21:41:04.91ID:oyaJ8gC3M974デフォルトの名無しさん (ワッチョイ d175-rVGZ)
2017/10/26(木) 21:42:34.03ID:Fjma9sq90 とりまリスト構造なんて誰でもしってること
>>959のレスはイミフ
>>959のレスはイミフ
975デフォルトの名無しさん (ワッチョイ 719f-Akqv)
2017/10/27(金) 03:11:40.50ID:QY+Fa/Ak0 >>966
これはトリック、か?
これはトリック、か?
976デフォルトの名無しさん (ワッチョイ 9193-cGPg)
2017/10/27(金) 06:49:46.56ID:VPed4ksO0 「関数の引数に値渡ししかないから、
ポインタを渡すことで呼出側の変数の内容を関数側で変更する」
というのが他の言語と比較した場合、C特有のトリックと呼べるかも。
もちろん、Cの村では当然かつ基本のことだけど。
ポインタを渡すことで呼出側の変数の内容を関数側で変更する」
というのが他の言語と比較した場合、C特有のトリックと呼べるかも。
もちろん、Cの村では当然かつ基本のことだけど。
977デフォルトの名無しさん (ワッチョイ 1387-jmG0)
2017/10/27(金) 08:36:39.71ID:JYNAFOfl0 たくさん値を返したいなら、
戻り値を型宣言した構造体にしたらいい。
戻り値を型宣言した構造体にしたらいい。
978デフォルトの名無しさん (ワッチョイ 0b23-20SA)
2017/10/27(金) 09:39:08.11ID:a5gmSSmH0 残念だったな、トリックだよ
979デフォルトの名無しさん (ワッチョイ 1be7-DRuk)
2017/10/27(金) 09:42:57.69ID:Q7q08ysx0 >>977
autoでもできるのですか?
autoでもできるのですか?
980デフォルトの名無しさん (ササクッテロラ Sp9d-jmG0)
2017/10/27(金) 09:57:16.24ID:CUGbjFhkp ああ、昔はauto変数に取った構造体を戻り値にして割り込み系で散々な目に遭ったよな。
あれは言語仕様に沿って無いコンパイラが悪いんだがな。
あれは言語仕様に沿って無いコンパイラが悪いんだがな。
981デフォルトの名無しさん (ワッチョイ ebea-ZNPd)
2017/10/27(金) 10:00:31.70ID:v/FEPkkV0 古いコンパイラではNGだったけど
構造体の引数での値渡し、戻り値での値戻しは可能
構造体の引数での値渡し、戻り値での値戻しは可能
982デフォルトの名無しさん (ササクッテロラ Sp9d-jmG0)
2017/10/27(金) 10:18:09.15ID:CUGbjFhkp 古くなくてもニッチな環境では要注意だ。
コンパイラの吐き出すコードが言語仕様に沿って無い場合がある。
コンパイラの吐き出すコードが言語仕様に沿って無い場合がある。
983デフォルトの名無しさん (ワッチョイ 13b3-DDuF)
2017/10/27(金) 10:27:32.22ID:8fSPZcAJ0 >>976
トリックと言うか他の言語ではコンパイラがやってることをアセンブラやCでは明示的に書くと言うだけ
トリックと言うか他の言語ではコンパイラがやってることをアセンブラやCでは明示的に書くと言うだけ
984デフォルトの名無しさん (ワッチョイ ebea-ZNPd)
2017/10/27(金) 13:06:16.96ID:v/FEPkkV0985デフォルトの名無しさん (ワッチョイ 138a-gYJi)
2017/10/27(金) 15:36:47.12ID:dGyUnw2Y0 ホワイトスミスなんて、printfすら無いような処理系作って
いた人がANSIの役員していて2度びっくり
いた人がANSIの役員していて2度びっくり
986デフォルトの名無しさん (ワッチョイ 1be7-DNJs)
2017/10/27(金) 18:41:59.37ID:BvMxy0d+0 C言語のポインタで
int *a;
int b;
a = 10;
これは理解できるんだけど
a = &b;
*a = 10;
これはどうなってるん?aにアドレス入ってるのにどうやって10を送ってるん?
int *a;
int b;
a = 10;
これは理解できるんだけど
a = &b;
*a = 10;
これはどうなってるん?aにアドレス入ってるのにどうやって10を送ってるん?
987デフォルトの名無しさん (ワッチョイ d1b3-ZNPd)
2017/10/27(金) 18:47:48.96ID:/LUCvRWS0 > int *a;
> a = 10;
> これは理解できるんだけど
説明できるのなら その先も分かるはず
> a = 10;
> これは理解できるんだけど
説明できるのなら その先も分かるはず
988片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd33-+nyC)
2017/10/27(金) 18:49:13.82ID:xRxq9X9wd >>986
> int *a;
> int b;
> a = 10; //エラー。ポインタに整数は代入できない。そもそも全角文字と半角文字を間違っている。
> a = &b;
> *a = 10;
アスタリスク(*)で実体の整数データを手繰り寄せているイメージね。
> int *a;
> int b;
> a = 10; //エラー。ポインタに整数は代入できない。そもそも全角文字と半角文字を間違っている。
> a = &b;
> *a = 10;
アスタリスク(*)で実体の整数データを手繰り寄せているイメージね。
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 【MLB】大谷翔平が「父親リスト」入りで離脱 真美子夫人の出産立ち会いへ [(´?ω?`)知らんがな★]
- 【関税交渉】車の「非関税障壁」緩和検討 政府、米国車の検査簡略化も [蚤の市★]
- 辛坊治郎氏、今秋にも引退 「す・またん」「そこまで言って委員会」などで人気 [冬月記者★]
- 【音楽】バイク事故で…美魔女フルート奏者′ウアナが引退示唆「フルートはもう吹けない...」に心配の声「1日も早い回復を」 [湛然★]
- 【ボートレース】誤審が発生…関係のない選手に妨害失格判定下す・・・徳山4日目 [あずささん★]
- キャリア公務員の解雇容易に 5万人対象―トランプ氏 [蚤の市★]
- Nexco、ETC障害の時の料金を払っていない90万人のクズに通常の3倍の料金を請求へ [333919576]
- ゼレンスキー「8月に大阪の万博に行くからよろしく😁✌」 [583597859]
- 【悲報】おじさんのNGファッション7選がこちらwwもう着る服ないぢゃんwwwwwwwwwwww [253977787]
- 【動画】パルクール世界チャンピオンの女子中学生🤸‍♀ [632966346]
- 【絶望】日本の受験、「事務処理速度」を異常に重視しまくった結果、完全にIQゲーになってしまう…
- 【悲報】「女には理解できないだろうが、男の9割は本能的に電車が好きなの」🐮🚃 [315952236]