検索結果 10 件

by たかお
11年前
フォーラム: C言語何でも質問掲示板
トピック: メモリーを解放する方法
返信数: 7
閲覧数: 3863

Re: メモリーを解放する方法

先ほど指摘された書き方

コード:

char** itemName = (char**)malloc((sizeof (char*)) * (itemSu+1));
にしたところ、期待通りの結果がでました。

みなさん回答ありがとうございました。
by たかお
11年前
フォーラム: C言語何でも質問掲示板
トピック: メモリーを解放する方法
返信数: 7
閲覧数: 3863

Re: メモリーを解放する方法

softyaさん、boxさん回答ありがとうございます! 最終的に itemName[itemSu + 1] = {"アイテム名1","アイテム名2",NULL}; このような形にしたいので、 char** itemName = (char**)malloc((sizeof (char*)) * (itemSu+1)); こちらの書き方にするべきですね。ありがとうございました。 しかし、mallocした数だけ解放しなければならない。ということは理解したのですが、疑問が生まれました。 私は、http://d.hatena.ne.jp/tondol/20090713/1247426321 のサイトを...
by たかお
11年前
フォーラム: C言語何でも質問掲示板
トピック: メモリーを解放する方法
返信数: 7
閲覧数: 3863

メモリーを解放する方法

こんにちは。 現在わたしはC+DXライブラリとVisual Studio Express 2012でRPGを製作しています。 配列の要素数を動的に変更したいと考え、malloc関数を使っているのですが、確保したアドレスを解放するときにエラーがでます。 GameScene GameTest(){ int items[2] = {3,4}; int itemSu = 2; char** itemName = (char**)malloc((sizeof (char)) * (itemSu+1)); Item_GetItemName(items,itemSu,itemName); //Chara_D...
by たかお
11年前
フォーラム: C言語何でも質問掲示板
トピック: 変数のスコープについて?
返信数: 3
閲覧数: 1648

Re: 変数のスコープについて?

自己解決しました。が、最後にもう一つ質問があります。解決内容は以下の通りです。 ウィンドウの生成は、Window_OpenWindow関数でウィンドウのフレームを設定→WIndow_SetString関数でそのウィンドウに文字列を設定→Window_DrawWIndow関数で画面に描画 という流れなのですが 描画関数はswitchの外にあるため、switchのcase MENU で生成したウィンドウに設定する文字列を case ITEM で設定する前に呼び出されるのが原因でした。 つまり文字列を設定する前に、文字列を呼び出してしまっていたのでエラーになるようです。 質問なんですが、switch...
by たかお
11年前
フォーラム: C言語何でも質問掲示板
トピック: 変数のスコープについて?
返信数: 3
閲覧数: 1648

変数のスコープについて?

 こんばんは。いつもお世話になっております。  C+DXライブラリでRPGを製作しています。現在、メニューウィンドウを実装しているところなのですが 不可解な現象が起きましたので質問させていただきました。  以下のコードの case ITEM: 以降が今回悩んでいる部分です。(このプログラムはsoftyaさんのRPG講座を参考にしています) GameSceneMain GameMenu(){ char* menu[] = {"アイテム","スペル","システム",NULL}; enum MenuScene{MENU,ITEM}; enum{ITEM_MENU,SPELL_MENU,SYSTEM_...
by たかお
11年前
フォーラム: C言語何でも質問掲示板
トピック: ゲーム開発におけるスクリプトの扱いについて
返信数: 6
閲覧数: 5300

Re: ゲーム開発におけるスクリプトの扱いについて

うーむ、わかったようなわからないような・・・。まぁ実際に触れてみるのが一番ですね。
基本的な概要は掴めたと思いますので、これから勉強してきます!

回答ありがとうございました!
by たかお
11年前
フォーラム: C言語何でも質問掲示板
トピック: ゲーム開発におけるスクリプトの扱いについて
返信数: 6
閲覧数: 5300

Re: ゲーム開発におけるスクリプトの扱いについて

softyaさん、usaoさん、回答ありがとうございます!

スクリプトの扱い方を伺いましたが、そもそもスクリプトそのものの意味や、必要性も何なのかよくわかっていないことに気づきました・・・。
softyaさんのRPG講座ではスクリプトを使用していませんし、usaoさんのコードは普通のC言語の関数に見えます。
そこで、少しゲーム開発におけるスクリプトの意義について調べてみた結果。
「C言語でも実装はできるが、情報量が多くなるにつれて、管理・コンパイルが面倒になる。それを避けるため外部にスクリプトを用意する」
という認識をもったのですが、正しいのでしょうか。
by たかお
11年前
フォーラム: C言語何でも質問掲示板
トピック: ゲーム開発におけるスクリプトの扱いについて
返信数: 6
閲覧数: 5300

ゲーム開発におけるスクリプトの扱いについて

こんにちは。
現在C+DXライブラリでRPGを製作しています。
ゲームプログラミングについて調べていると、スクリプトという言葉を目にします。
スクリプト言語のことだと思うのですが、これは具体的にどのように使うものなんでしょうか?

例えばマップの情報をCSVファイルから読み込んで利用するように、スクリプト言語のソースファイルを読み込んでC言語で実行する。
などといったことが可能なんでしょうか。

ちなみにRPGのイベント処理をスクリプトを使って行なおうと考えています。
by たかお
11年前
フォーラム: C言語何でも質問掲示板
トピック: printf関数の挙動について
返信数: 5
閲覧数: 2700

Re: printf関数の挙動について

そういえば文字列配列の最後尾にはNULLが入るんでしたね。自動的に挿入されるのですっかり忘れていました。
文字列の配列を表示する際はNULLが見つかるまで連続したアドレスを参照するようになってるんですね。

みけCATさん、boxさん回答ありがとうございました!
by たかお
11年前
フォーラム: C言語何でも質問掲示板
トピック: printf関数の挙動について
返信数: 5
閲覧数: 2700

printf関数の挙動について

こんばんは。 C言語においての文字や文字列の扱いを勉強しようと考え、色々試していたところ不可解な現象が起きました。 void main(){ char b[] = "1abc"; char d[4]; d[0] = '1'; d[1] = 'a'; d[2] = 'b'; d[3] = 'c'; printf("%s\n",b); printf("%s\n",d); return 0; } このように記述したところ、実行結果が以下のようになりました。 1abc 1abc1abc 配列dに格納されている文字を表示する処理を一度しか行なっていないにも関わらず、実行結果では2回分表示されています。 ...

詳細検索ページへ移動する