何にも知らない0からの出発、超初心者のためのC言語相談室
C++は、こちら。
0からの、超初心者C++相談室
https://mevius.5ch.net/test/read.cgi/tech/1542002113/
探検
0からの、超初心者C言語相談室
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2021/05/19(水) 01:34:14.03ID:OYngDuIu2デフォルトの名無しさん
2021/05/19(水) 02:46:32.09ID:iywlut5a 糸冬
3デフォルトの名無しさん
2021/05/19(水) 07:05:58.55ID:arAgfqcT #include<stdio.h>
void funcB(void)
{
int b = 20;
printf("b-address: %ld\n", (long)&b);
}
void funcA(void)
{
int a = 10;
printf("a-address: %ld\n", (long)&a);
funcB();
}
int main(void)
{
funcA();
return 0;
}
(1)変数aとbはメモリ内の特に何という領域に確保されますか。
(2)変数aとbはどちらのほうがより小さい番地にメモリが確保されましたか。
(3)(2)から(1)の領域は前と後ろのどちらの方向へ向かって利用されていくと推測できますか。
スッキリ分かるCの問題なのですが
これの(3)が意味分からないので解説してほしいです
(2)も何でそうなるのかよく分からんですが、。
void funcB(void)
{
int b = 20;
printf("b-address: %ld\n", (long)&b);
}
void funcA(void)
{
int a = 10;
printf("a-address: %ld\n", (long)&a);
funcB();
}
int main(void)
{
funcA();
return 0;
}
(1)変数aとbはメモリ内の特に何という領域に確保されますか。
(2)変数aとbはどちらのほうがより小さい番地にメモリが確保されましたか。
(3)(2)から(1)の領域は前と後ろのどちらの方向へ向かって利用されていくと推測できますか。
スッキリ分かるCの問題なのですが
これの(3)が意味分からないので解説してほしいです
(2)も何でそうなるのかよく分からんですが、。
4デフォルトの名無しさん
2021/05/19(水) 07:34:36.87ID:dkgz9ZJm 無理しないでPythonでもやっとけ
5デフォルトの名無しさん
2021/05/19(水) 11:41:19.87ID:psqzmlBB &p
6デフォルトの名無しさん
2021/05/19(水) 11:41:41.86ID:psqzmlBB もとい
%p
%p
2021/05/19(水) 11:51:21.02ID:AeilwxT4
どっかの宿題か
https://brain.cc.kogakuin.ac.jp/~kanamaru/lecture/MP/final/part06/node9.html
https://www.atmarkit.co.jp/ait/articles/1703/01/news166_4.html
https://qiita.com/zacky1972/items/86741d1ac6939795784f
https://qiita.com/hiro4669/items/348ba278aa31aa58fa95
https://brain.cc.kogakuin.ac.jp/~kanamaru/lecture/MP/final/part06/node9.html
https://www.atmarkit.co.jp/ait/articles/1703/01/news166_4.html
https://qiita.com/zacky1972/items/86741d1ac6939795784f
https://qiita.com/hiro4669/items/348ba278aa31aa58fa95
2021/05/19(水) 16:59:00.40ID:ZyjXFBY0
9はちみつ餃子 ◆8X2XSCHEME
2021/05/19(水) 17:43:06.29ID:ONEwpJm5 >>3
(1) 一般にはスタックと呼ばれるが言語仕様にはそのような規定はないので、
実行環境によっては違うこともあるかもね。
(言語仕様ではオブジェクトの寿命が決められているだけ。)
(2) 主流の CPU では b の方が小さい番地の可能性が高い。
(3) スタックはメモリの上位番地から下位番地に向かって使われる。
なんでそうなるかっていうのは結局のところそう決めたから
そうなっているってだけなんで、逆でもかまわないし、
実際に逆にデザインされたアーキテクチャは存在する。
https://ja.wikipedia.org/wiki/PA-RISC
これらはコンピュータアーキテクチャの話。
言語の仕様とそれがどのように実装されているか (機械語を生成するか) は別物なんで、
そこらへんのレイヤを区別して考えないとわけわからんと思う。
(1) 一般にはスタックと呼ばれるが言語仕様にはそのような規定はないので、
実行環境によっては違うこともあるかもね。
(言語仕様ではオブジェクトの寿命が決められているだけ。)
(2) 主流の CPU では b の方が小さい番地の可能性が高い。
(3) スタックはメモリの上位番地から下位番地に向かって使われる。
なんでそうなるかっていうのは結局のところそう決めたから
そうなっているってだけなんで、逆でもかまわないし、
実際に逆にデザインされたアーキテクチャは存在する。
https://ja.wikipedia.org/wiki/PA-RISC
これらはコンピュータアーキテクチャの話。
言語の仕様とそれがどのように実装されているか (機械語を生成するか) は別物なんで、
そこらへんのレイヤを区別して考えないとわけわからんと思う。
2021/05/19(水) 18:47:16.00ID:SmvgsauD
11デフォルトの名無しさん
2021/06/09(水) 14:13:39.99ID:3Qpbsqp/ strstr で文字列を検索出来ますが'\0'が含まれているともちろん正常に動作しませんね
メモリ中の'\0'を含むバイトパターンの現れる位置を調べる関数は何ていう名前?
メモリ中の'\0'を含むバイトパターンの現れる位置を調べる関数は何ていう名前?
12はちみつ餃子 ◆8X2XSCHEME
2021/06/09(水) 16:35:20.50ID:Ih94CWHU13デフォルトの名無しさん
2021/06/10(木) 10:48:32.40ID:ZbfFyHii memchr を使って memmem 相当の関数を造りました
ありがとうございました
ところで memmem の引数や戻り値ってどうして void * なんですか?
char * になってないと使いにくくないですか?
memory 用だからですか?
void * の場合 size_t が各要素の size の倍数なのか char の size の倍数なのか
特別考慮してくれる訳でもないですよね?
ありがとうございました
ところで memmem の引数や戻り値ってどうして void * なんですか?
char * になってないと使いにくくないですか?
memory 用だからですか?
void * の場合 size_t が各要素の size の倍数なのか char の size の倍数なのか
特別考慮してくれる訳でもないですよね?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 国民 居住目的でない住宅所有者に「空室税」課せる法案を提出 ★2 [少考さん★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ [蚤の市★]
- 【EV新税】最大2万4千円で検討 28年から、普及妨げると異論も [蚤の市★]
- 「働いて働いて」の流行語大賞に懸念 「言葉が独り歩き」 過労自殺遺族 [尺アジ★]
- アメリカ、入国時に「日本人を含む外国人観光客の最大5年分のSNS履歴の提出」義務化へ 過去10年間に使用のメールアドレスや電話番号等も★3 [Hitzeschleier★]
- 【山形】クマ駆除で誤射した猟友会隊員に町が1663万円請求へ...弾当たり男性大けが2023年 小国町 [nita★]
- 防衛省「中国側が出した記録は捏造」とは一言も表明せず、捏造言ってたネトウヨたちどうすんの? [469534301]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★1
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★2
- 【悲報】高市早苗、被災民に対し「自分の命くらいは自分で守ってくださいね」と切り捨てし大炎上 [339712612]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★2
- 【高市悲報】JA、発狂www「臨時に経費率を下げるので、どうかお米券を使ってください」 [246620176]
