CとかC++でさmallocとかnewとかで動的に変数確保するじゃんか? at NEWS4VIP
[2ch|▼Menu]
92:以下、?ちゃんねるからVIPがお送りします
21/10/22 01:07:12.204 LF7SBktz0.net
>>85
ポインタは変数で確保したメモリのアドレスだから途中で宣言しても差し支えはないくらいだ

93:以下、?ちゃんねるからVIPがお送りします
21/10/22 01:10:07.040 NZLwI0Qw6.net
>>91
> ポインタ配列で要素数の部分で動的に確保して
int a[] ←の[]内の数値のこと?
> いらない部分を要素数で削れ
ポインタを格納した配列なら、各要素に対してfree()を呼ばないとメモリリークが起きて無駄なメモリを消費することになる

94:以下、?ちゃんねるからVIPがお送りします
21/10/22 01:10:58.630 J8kkIzYAd.net
まず用語を正確に押さえよう?
宣言というのは文字通り「使いますよ」という宣言に過ぎずそれ自体に実体はない
Cにおける定義は注釈がなければ#defineによる定数定義を指す

95:以下、?ちゃんねるからVIPがお送りします
21/10/22 01:11:00.115 Oi87Jppr0.net
>>92
実数じゃなさそうだもんな
引数でもインスタンスの一番最初のポインタを1個書けばいいだけだもんな
中身は敵10個分でも20個分でもいいわけか
ほんとにできんのかよ

96:以下、?ちゃんねるからVIPがお送りします
21/10/22 01:12:34.045 Oi87Jppr0.net
インベーダーゲームでも作ってみるか・・・
ほんとにできんのか不思議で仕方がない・・・

97:以下、?ちゃんねるからVIPがお送りします
21/10/22 01:14:26.058 Oi87Jppr0.net
てか入門書にそこまで書いてねえよwwww

98:以下、?ちゃんねるからVIPがお送りします
21/10/22 01:16:12.722 ahA3153c0.net
Cなら存在確認ができるように変数にnull入れて宣言すりゃいいだけだ

99:以下、?ちゃんねるからVIPがお送りします
21/10/22 01:18:48.344 LF7SBktz0.net
>>95
ちなみに、関数呼び出すときに*有無の動きの違いわかる?
main()
{
int *a=1;
r=hoge(a);
printf(“%d“,*a);
r=hoge(*a);
printf(“%d“,*a);
}
int hoge(int *b)
{
b=b+1;
return(0);
}

100:以下、?ちゃんねるからVIPがお送りします
21/10/22 01:20:39.499 z210Z/3C0.net
ポインタと変数の違いがわかってなかったのか
もっと頑張れ

101:以下、?ちゃんねるからVIPがお送りします
21/10/22 01:25:32.987 Oi87Jppr0.net
>>99
上がint *aのアドレスのint分1個次のアドレスの値を表示してて
下はint hoge(int *b) で宣言したint *bのアドレスの1個次のアドレスに入ってるものを表示?

102:以下、?ちゃんねるからVIPがお送りします
21/10/22 01:29:18.787 Oi87Jppr0.net
あれ違った?w

103:以下、?ちゃんねるからVIPがお送りします
21/10/22 01:31:29.001 LF7SBktz0.net
>>101
すまん、
int hoge(int b)
だった

104:以下、?ちゃんねるからVIPがお送りします
21/10/22 01:37:43.208 cUueluz80.net
このまえ変数の省略がなんとかとか、書いてた人?

105:以下、?ちゃんねるからVIPがお送りします
21/10/22 01:38:11.191 Oi87Jppr0.net
>>103
というか上のも違うけどいろいろ壊れる気がするw
それだと上がint *aのint分1個次のアドレスに入ってるものが表示
下がその数値を*aで飛ばしてるからヤバいことになるwww異空間参照www

106:以下、?ちゃんねるからVIPがお送りします
21/10/22 01:42:49.928 Oi87Jppr0.net
でも>>34がそういうことだよね
*pにしといて
3つ分マロックで敵増やしたら
して
(p+3)->hoge = 3;みたいに使えばいいという事だよね?
この書き方があってるかわからんが

107:以下、?ちゃんねるからVIPがお送りします
21/10/22 01:45:26.662 Oi87Jppr0.net
3つ分増やしたら
変数にkusoに3を入れて
(p+kuso)->hoge = 10;
こういうことか?

108:以下、?ちゃんねるからVIPがお送りします
21/10/22 01:48:33.953 Oi87Jppr0.net
for( int i = 0 ; i < kuso ; i++){
(p+kuso)->hoge = 10;
}
これでエラーにならんてことか?

109:以下、?ちゃんねるからVIPがお送りします
21/10/22 01:49:00.550 z210Z/3C0.net
引数に渡すことを飛ばすって言わんような普通
>>99
これって上が参照渡し下が値渡しになんの?

110:以下、?ちゃんねるからVIPがお送りします
21/10/22 01:50:10.282 Oi87Jppr0.net
for( int i = 0 ; i < kuso ; i++){
if( (p+kuso)->hoge == 1 ){
//関数
}
}
こんな感じか
あー出来そうだなこの書き方があってるならw

111:以下、?ちゃんねるからVIPがお送りします
21/10/22 02:02:24.196 idrCh94y0.net
別の問題が発生すると思うが
2歩進んで5歩下がるのもまた勉強やな

112:以下、?ちゃんねるからVIPがお送りします
21/10/22 02:07:46.351 .net
CとC++でちょっと仕様が違うんよな


最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

87日前に更新/28 KB
担当:undef