- 1 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:18:46.370 ID:Oi87Jppr0.net]
- でも関数とかで最初から条件式書いてるとエラーになるんだけど
そこはどうやって回避するの?
- 2 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:19:39.592 ID:Q47zjeUm0.net]
- 何言ってるかわからないからもう少し詳しく
- 3 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:19:48.832 ID:zy8V0Re40.net]
- 動的に確保された変数くん
- 4 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:20:37.802 ID:TWPKKm1h0.net]
- ヌル
- 5 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:21:13.891 ID:CEKlTVtE0.net]
- ポ
- 6 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:21:22.818 ID:Oi87Jppr0.net]
- >>2
最初動的に確保してないと変数が無いじゃんか? でも関数とかで引数とか含めて、変数はあります!で書くとエラーになるんだけど
- 7 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:22:28.529 ID:+PsjNtyg0.net]
- 言葉で説明しないで画像で説明してくれわからん
- 8 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:22:50.641 ID:Q47zjeUm0.net]
- え、コンパイル時の話?
- 9 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:23:12.208 ID:Oi87Jppr0.net]
- 動的に確保サッパリわからん(´・ω・`)
- 10 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:23:22.593 ID:Oi87Jppr0.net]
- >>8
うん
- 11 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:23:52.763 ID:SZ+XAls20.net]
- メソッドをインスタンス
- 12 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:24:02.039 ID:Oi87Jppr0.net]
- まあ当たり前だよね
変数無いんだもん あるのを前提に条件式書いたらエラーになるよね
- 13 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:24:07.298 ID:J8kkIzYAd.net]
- 動的
- 14 名前:ゥ静的かによらず宣言は要る []
- [ここ壊れてます]
- 15 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:24:11.711 ID:u89+/y4x0.net]
- 現物見せろ😡
- 16 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:24:43.676 ID:+PsjNtyg0.net]
- だろうな
- 17 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:25:37.649 ID:8Zb23xDEr.net]
- 条件の前でnewすれば良いだけでは
- 18 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:25:54.151 ID:Oi87Jppr0.net]
- メインクラスの中でインスタンスを定義しといて
インスタンスを定義したクラスの中で増やしてそっちで条件式書くのか?
- 19 名前:以下、?ちゃんねるからVIPがお送りします mailto:sage [2021/10/22(金) 00:26:06.823 ID:F2zKBEjL0.net]
- 条件式入れる前に条件が必要っちゅうことかいな?
- 20 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:27:04.621 ID:ZyV0+YAB0.net]
- 引数で渡せよ
- 21 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:27:14.045 ID:Oi87Jppr0.net]
- >>16
そのスコープの中ならできるけど 例えばシーケンスによって新しく動的に確保した場合 元々のシーケンスの条件式をコンパイルしたらエラーになるじゃんか? だってないじゃん?
- 22 名前:以下、?ちゃんねるからVIPがお送りします mailto:sage [2021/10/22(金) 00:27:39.108 ID:5Gc0P0Zhr.net]
- コード貼れよ
- 23 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:28:00.732 ID:Oi87Jppr0.net]
- >>18
最初に条件式で存在するか?のチェックをしたらエラーにならないの?
- 24 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:29:24.414 ID:8Zb23xDEr.net]
- >>20
何言ってるかんからんけどインスタンス作成したあと関数の引数とかで渡せば良いんじゃね
- 25 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:29:50.700 ID:Oi87Jppr0.net]
- 例えば
最初に何も定義しないじゃんか? で、シーケンスによって条件式に書いたり、引数でその変数飛ばそうとすると エラーになるじゃんか? 動的確保とは何なんだ?
- 26 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:30:06.843 ID:Q47zjeUm0.net]
- 回避も何もプログラミング以前の問題
要するに動的に確保しないルートが存在してるってことでしょ? なんていうか、、、うん、、どんまい。
- 27 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:30:32.873 ID:J8kkIzYAd.net]
- 参照渡しと値私の違いが理解できていない説
- 28 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:31:48.593 ID:Oi87Jppr0.net]
- >>23
元々定義しといて 条件式や引数に書いておくなら出来るじゃんか? でも途中から動的に確保したとすると 条件式や引数を最初に書いておくとエラーになるじゃんか?
- 29 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:32:27.158 ID:Oi87Jppr0.net]
- >>25
そう 何で駄目なん?
- 30 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:32:42.759 ID:ZyV0+YAB0.net]
- 多分わからないことをわからないまま間違った方向に理解しようとしてるから具体例考えたほうがいいよ
- 31 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:33:06.162 ID:8Zb23xDEr.net]
- >>27
あー分かったわ 動的確保って変数を動的確保するわけじゃねぇんだよ 変数は予め宣言しとかなきゃいけない 変数の中身を動的に確保するんだよ
- 32 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:33:06.319 ID:Oi87Jppr0.net]
- 元々定義しておくなら何で動的に確保する必要があるんだ?
チンプンカンプン過ぎる
- 33 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:33:35.407 ID:Oi87Jppr0.net]
- >>30
わからんどういうこと?
- 34 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:34:18.645 ID:8Zb23xDEr.net]
- >>32
ポインタとか勉強まだしてない? そこ理解してないと伝えても伝わらないから勉強したほうが良い
- 35 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:34:51.545 ID:tUlGiziT0.net]
- もしかしてこうすれば直るパターン?
char *p = null; ・・・ if (p == null) { p = malloc(256); } ・・・ strcpy(p, "abc");
- 36 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:34:56.746 ID:Oi87Jppr0.net]
- >>33
ポインタは使いこなしてるからわかってる前提で説明してほしい
- 37 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:36:45.223 ID:Oi87Jppr0.net]
- >>34
ポインターで先に定義しとくの? その後シーケンスに分けたり 動的に確保した分だけ変数に入れたりしてループ回数制限させたりするの?
- 38 名前:以下、?ちゃんねるからVIPがお送りします mailto:sage [2021/10/22(金) 00:37:14.958 ID:NZLwI0Qw6.net]
- >>1
そういうときは最初に値をNULLにして、あらかじめ(ポインタ型の)変数だけを宣言しておくのが普通かと
- 39 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:37:15.546 ID:Oi87Jppr0.net]
- ポインターを使って条件式を書いてないから俺は出来ないのか?
- 40 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:37:20.365 ID:8Zb23xDEr.net]
- >>35
よくその理解でポインタ使いこなしてるって言えるな…… c++のデータって変数に直接入ってるのと、別の場所にあるデータへのアドレスを変数に入れる二種類があるの で、後者の別の場所にあるデータっていうのが動的に確保したデータのこと
- 41 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:37:30.246 ID:FehnI0u90.net]
- >>31
Cの変数は名前に対してアドレスをセットするということをやっている 文脈としては宣言をしてそこにポインタを割り当てる順序でなければならない 基本的に全てがポインタで通常の変数の場合はポインタの記述を省略できるという感じ
- 42 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:38:36.105 ID:SZ+XAls20.net]
- c#だと out があるけどc++だとない
- 43 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:39:13.086 ID:Oi87Jppr0.net]
- >>37
ポインタだけ宣言して 動的に確保する分を配列みたいに増やしていくイメージ? そしてポインタで条件式を書くの? そんな複雑な事が出来るの?
- 44 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:40:37.413 ID:EL0gdgIT0.net]
- >>34
こういうことやってそう if (p == null) { char *p = malloc(256); }
- 45 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:40:55.044 ID:Oi87Jppr0.net]
- >>39
最初にドバーっと宣言するのは出来るんだけど 動的に確保して 不必要な時にリリースするってのが出来ないんだよ なぜならば宣言してないから条件式や引数で書いていくとエラーになっちゃうから そこで困ってんだわ
- 46 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:40:58.613 ID:gqSii+HQ0.net]
- テンプレート・メタプログラミングがしたいのか?
- 47 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:41:51.854 ID:8Zb23xDEr.net]
- >>44
そういう時は配列の長さで調整するの 変数ぽんぽん追加するわけじゃない
- 48 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:43:02.734 ID:Oi87Jppr0.net]
- >>40
ポインタで宣言をしろという事なの? それだとエラーにならんという事? >>43 やってる! それで*pをスコープ以外で書くとエラーになるということか
- 49 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:43:06.873 ID:usW0+tR80.net]
- 動的メモリ割り当て
malloc(), free() new, delete
- 50 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:43:30.351 ID:NZLwI0Qw6.net]
- >>42
ポインタで条件式を書くの意味がいまいち分からないけど、malloc()でメモリを確保したあとで領域を拡張するにはrealloc()関数を使う
- 51 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:43:52.398 ID:Oi87Jppr0.net]
- >>46
よくわからんどういうこと?
- 52 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:44:29.354 ID:EtjXPiAK0.net]
- 変数のスコープは動的確保云々以前の問題だろ
- 53 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:45:39.789 ID:FehnI0u90.net]
- スコープ云々はC以前の問題だろ・・・
- 54 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:45:49.962 ID:Oi87Jppr0.net]
- 例えばさ?
シューティングゲームがあるとするじゃんか? 1面で出てくる敵を一番最初に全部宣言するのは出来るんだ でも動的に確保しようとすると途中で増やしたり減らしたり出来るようにしたいとすると どういう感じになるの?
- 55 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:46:10.730 ID:3WKXtYI0d.net]
- もうちょっとこう謙虚な姿勢で話を聞けないかな
- 56 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:46:36.685 ID:EL0gdgIT0.net]
- >>47
変数pの定義はif文より前に書かなきゃ未定義の変数を参照してるエラーになる >>34が正解
- 57 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:46:41.477 ID:82pHL68s0.net]
- 今夜の「お前には無理」スレ
- 58 名前:以下、?ちゃんねるからVIPがお送りします mailto:sage [2021/10/22(金) 00:46:59.767 ID:LF7SBktz0.net]
- mallocは確保したポインタのメモリ範囲拡張するんじゃあなくて、確保してみてできたメモリのポインタを返すんやろ
- 59 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:47:29.752 ID:Oi87Jppr0.net]
- {
動的に確保 確保した変数へアクセス } これは出来るけど { { 動的に確保 確保した変数へアクセス } { 確保した変数へアクセス←これがスコープでエラーになるでしょ? } }
- 60 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:48:50.005 ID:NZLwI0Qw6.net]
- >>53
C++ならstd::vectorとかを使うのが一般的かと Cならポインタを格納する配列を用意しておいて、その配列内の要素が指す領域が不要になったら都度都度free()関数を呼べば適切に開放される
- 61 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:49:03.449 ID:J8kkIzYAd.net]
- >>53
敵機なら予め作って置いた敵機というオブジェクトを動的に確保するだけだと思うが
- 62 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:49:25.360 ID:SZ+XAls20.net]
- >>53
ファミコンだと分かりやすいけど必ず最大数決まってる 最近のゲームはUnityだからC#でみんなList使いまくりですわ 普通の配列すら使わない時代
- 63 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:49:32.168 ID:Oi87Jppr0.net]
- >>55
俺も
- 64 名前:>>34がかなり重要な気がしてる
もう少しな気がする ようするに要素数の無いポインタ配列を使って 要素番号を変えれば行けるという事だよな? 高度過ぎて俺にできる気がしないんだけどwww ようするに必要な数だけ増やして 増やした数を変数に入れておけばそれを要素数にできる [] - [ここ壊れてます]
- 65 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:50:07.955 ID:wV1h419f0.net]
- 磨呂ック
- 66 名前:以下、?ちゃんねるからVIPがお送りします mailto:sage [2021/10/22(金) 00:51:07.632 ID:NZLwI0Qw6.net]
- これってもしかしてmalloc()とかそれ以前の変数のスコープの話?
- 67 名前:以下、?ちゃんねるからVIPがお送りします mailto:sage [2021/10/22(金) 00:51:31.730 ID:jmAI4hIV0.net]
- こうしてCOBOLみたいなコードが量産されて行くのであった
全部グローバル宣言!
- 68 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:51:39.394 ID:EtjXPiAK0.net]
- 昔の環境なら動的に確保しない、遅いから
最近の環境ならメモリ確保は隠蔽されてるから動的確保云々を意識することはあまりない
- 69 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:52:13.004 ID:Oi87Jppr0.net]
- >>59
>>34みたいに事前にポインタを宣言しといて そのポインタ配列、もしくはインスタンスのポインタを基に条件式や引数で渡すって感じってことだよな? ベクターってのがインスタンスのポインタってことなん? C言語の入門書にそこまで書いてないんだけどwwwww
- 70 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:52:29.278 ID:J8kkIzYAd.net]
- >>61
ファミコンのそれは配列云々よりもっと低レベル 4bit確保して制御できる数は15機みたいなビット単位でぶち込んである
- 71 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:53:03.604 ID:ahA3153c0.net]
- 例外拾えよ簡単な話だろ
- 72 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:54:52.365 ID:Oi87Jppr0.net]
- >>60
それは敵機クラスで動的に増やすの? それともメインクラスで敵機を増やすの? 敵機[20]でメインクラスで最初から宣言したら 条件式で[20]までなら条件式を組んでもエラーにならんのだけど 敵機[20]を動的に増やそうと書くと 最初ないわけだからエラーになってたのよね そこをポインタで書いて要素数を変数にしたらいけるって言われると 納得できたんだけど この認識でええの?
- 73 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:55:17.716 ID:EtjXPiAK0.net]
- なんで禄にプログラム書けない輩に限ってC/C++に手を出すかな
- 74 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:56:18.673 ID:Oi87Jppr0.net]
- >>61
Unityって少し触ったけど あれも最初に全部定義する感じでしょ? Javaとかと同じで
- 75 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:57:00.807 ID:NZLwI0Qw6.net]
- >>67
vectorはインスタンスのことじゃなくてC++のクラス名(違いは分かっているのだろうか…)
- 76 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:57:09.216 ID:Oi87Jppr0.net]
- >>66
どういうこと?
- 77 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:57:53.548 ID:Oi87Jppr0.net]
- >>73
わからない テンプレートとかベクターとかまではやったけど その辺りからさっぱりわからないから
- 78 名前:以下、?ちゃんねるからVIPがお送りします mailto:sage [2021/10/22(金) 00:58:30.911 ID:LF7SBktz0.net]
- >>71
たぶん、「俺凄いゲーム作りたいから下手になんか使って処理落ちするよりC/C++で始めからやるでつ!」じゃね?
- 79 名前:以下、?ちゃんねるからVIPがお送りします mailto:sage [2021/10/22(金) 00:58:47.095 ID:jmAI4hIV0.net]
- ちゃんとfree()してくれよ
できないなら全部グローバルだ
- 80 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 00:59:02.477 ID:Oi87Jppr0.net]
- 最初に全部定義するのはかけるんだけど
動的に確保したソースの書き方がワカラン! >>34をヒントに組んで行けという事なのか?
- 81 名前:以下、?ちゃんねるからVIPがお送りします mailto:sage [2021/10/22(金) 00:59:34.660 ID:LF7SBktz0.net]
- >>72
Cもそうだよ その上めっちゃ厳しいよ
- 82 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 01:00:15.003 ID:EtjXPiAK0.net]
- 最初に全部定義って何の話だ?C89?
- 83 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 01:00:33.675 ID:J8kkIzYAd.net]
- stdio(std-io)とかstd::
みたいなやつが 近代のコンピュータにおける標準入出力、Standard-Input-Output、ということを分かってない説も浮上
- 84 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 01:00:36.609 ID:NZLwI0Qw6.net]
- >>70 で書いてあるようなことがしたいなら
C++ならさっき書いたvectorクラスを使う Cならrealloc()関数でポインタが指す領域を拡張する realloc(既存の敵機配列のポインタ, sizeof(敵機)*増やしたい個数); ↑みたいな感じで
- 85 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 01:01:30.910 ID:EL0gdgIT0.net]
- >>62
配列の要素数を増やすならreallocで増やすとか char *p,*q; p=malloc(10);←サイズ10の領域を確保してアドレスをpに代入 q=realloc(p,20);←pの指す領域のサイズを20に変更してアドレスをqに代入 詳しくはrealloc関数を調べてくれ
- 86 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 01:01:48.807 ID:z210Z/3C0.net]
- 動的に変数確保って何?
実行時にインスタンスを生成すること? コンパイルエラーと関係ないやん
- 87 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 01:02:39.745 ID:Oi87Jppr0.net]
- >>79
Cも最初に定義しないと書けないの? 定義するのはポインタで定義していくの? というか描けないんだよエラーになるから 結局最初にすべて定義してるプログラミングしてる
- 88 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 01:03:14.101 ID:vf+kplqu0.net]
- >>72
もしかしたら Unity をプログラミング言語のひとつだと思って...ないよな?
- 89 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 01:04:51.966 ID:Oi87Jppr0.net]
- >>82
それでポインタですべて定義して 要素数も変数にして増やした分を変数に代入して 関数化していくってこと? それって滅茶苦茶難しくないか? 最早今までやってた俺のプログラミングなんてお子様レベルwwww
- 90 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 01:05:30.979 ID:NZLwI0Qw6.net]
- 「最初で定義」の意味がよく分からないけど
ブロックの途中で変数宣言ができないこと(古いC言語の規格であった制約)なのか ブロック内で宣言した変数をブロック外から参照できないこと(言語問わず一般的な制約) のどっちなのか
- 91 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 01:05:31.581 ID:msZIkVird.net]
- >>77
すぐ消えるプログラムなら問題ないけどな malloc使うけど意図的にfree呼ばないコンパイラとかもある
- 92 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 01:05:42.419 ID:EtjXPiAK0.net]
- まず変数のスコープを理解するべき
先頭以外で変数宣言することは動的確保とは呼ばない
- 93 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 01:06:56.739 ID:Oi87Jppr0.net]
- なんかわかってきた気がする
ポインタ配列で要素数の部分で動的に確保して いらない部分を要素数で削れという事か しかしほんとにそんなソースコードが書けるのか不思議で仕方がない
- 94 名前:以下、?ちゃんねるからVIPがお送りします mailto:sage [2021/10/22(金) 01:07:12.204 ID:LF7SBktz0.net]
- >>85
ポインタは変数で確保したメモリのアドレスだから途中で宣言しても差し支えはないくらいだ
- 95 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 01:10:07.040 ID:NZLwI0Qw6.net]
- >>91
> ポインタ配列で要素数の部分で動的に確保して int a[] ←の[]内の数値のこと? > いらない部分を要素数で削れ ポインタを格納した配列なら、各要素に対してfree()を呼ばないとメモリリークが起きて無駄なメモリを消費することになる
- 96 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 01:10:58.630 ID:J8kkIzYAd.net]
- まず用語を正確に押さえよう?
宣言というのは文字通り「使いますよ」という宣言に過ぎずそれ自体に実体はない Cにおける定義は注釈がなければ#defineによる定数定義を指す
- 97 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 01:11:00.115 ID:Oi87Jppr0.net]
- >>92
実数じゃなさそうだもんな 引数でもインスタンスの一番最初のポインタを1個書けばいいだけだもんな 中身は敵10個分でも20個分でもいいわけか ほんとにできんのかよ
- 98 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 01:12:34.045 ID:Oi87Jppr0.net]
- インベーダーゲームでも作ってみるか・・・
ほんとにできんのか不思議で仕方がない・・・
- 99 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 01:14:26.058 ID:Oi87Jppr0.net]
- てか入門書にそこまで書いてねえよwwww
- 100 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 01:16:12.722 ID:ahA3153c0.net]
- Cなら存在確認ができるように変数にnull入れて宣言すりゃいいだけだ
- 101 名前:以下、?ちゃんねるからVIPがお送りします mailto:sage [2021/10/22(金) 01:18:48.344 ID:LF7SBktz0.net]
- >>95
ちなみに、関数呼び出すときに*有無の動きの違いわかる? main() { int *a=1; r=hoge(a); printf(“
- 102 名前:%d“,*a);
r=hoge(*a); printf(“%d“,*a); } int hoge(int *b) { b=b+1; return(0); } [] - [ここ壊れてます]
- 103 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 01:20:39.499 ID:z210Z/3C0.net]
- ポインタと変数の違いがわかってなかったのか
もっと頑張れ
- 104 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 01:25:32.987 ID:Oi87Jppr0.net]
- >>99
上がint *aのアドレスのint分1個次のアドレスの値を表示してて 下はint hoge(int *b) で宣言したint *bのアドレスの1個次のアドレスに入ってるものを表示?
- 105 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 01:29:18.787 ID:Oi87Jppr0.net]
- あれ違った?w
- 106 名前:以下、?ちゃんねるからVIPがお送りします mailto:sage [2021/10/22(金) 01:31:29.00
]
- [ここ壊れてます]
- 107 名前:1 ID:LF7SBktz0.net mailto: >>101
すまん、 int hoge(int b) だった [] - [ここ壊れてます]
- 108 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 01:37:43.208 ID:cUueluz80.net]
- このまえ変数の省略がなんとかとか、書いてた人?
- 109 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 01:38:11.191 ID:Oi87Jppr0.net]
- >>103
というか上のも違うけどいろいろ壊れる気がするw それだと上がint *aのint分1個次のアドレスに入ってるものが表示 下がその数値を*aで飛ばしてるからヤバいことになるwww異空間参照www
- 110 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 01:42:49.928 ID:Oi87Jppr0.net]
- でも>>34がそういうことだよね
*pにしといて 3つ分マロックで敵増やしたら して (p+3)->hoge = 3;みたいに使えばいいという事だよね? この書き方があってるかわからんが
- 111 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 01:45:26.662 ID:Oi87Jppr0.net]
- 3つ分増やしたら
変数にkusoに3を入れて (p+kuso)->hoge = 10; こういうことか?
- 112 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 01:48:33.953 ID:Oi87Jppr0.net]
- for( int i = 0 ; i < kuso ; i++){
(p+kuso)->hoge = 10; } これでエラーにならんてことか?
- 113 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 01:49:00.550 ID:z210Z/3C0.net]
- 引数に渡すことを飛ばすって言わんような普通
>>99 これって上が参照渡し下が値渡しになんの?
- 114 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 01:50:10.282 ID:Oi87Jppr0.net]
- for( int i = 0 ; i < kuso ; i++){
if( (p+kuso)->hoge == 1 ){ //関数 } } こんな感じか あー出来そうだなこの書き方があってるならw
- 115 名前:以下、?ちゃんねるからVIPがお送りします mailto:sage [2021/10/22(金) 02:02:24.196 ID:idrCh94y0.net]
- 別の問題が発生すると思うが
2歩進んで5歩下がるのもまた勉強やな
- 116 名前:以下、?ちゃんねるからVIPがお送りします [2021/10/22(金) 02:07:46.351 .net]
- CとC++でちょっと仕様が違うんよな
- 117 名前:過去ログ ★ [[過去ログ]]
- ■ このスレッドは過去ログ倉庫に格納されています
|
|