警告がでて通りません。name[20];...続きを読むAベストアンサーhttp://www.a.math.ryukoku.ac.jp/~hig/course/compsci2_2005/man/faq.htmlにある現象と同じではないでしょうか、一度お試しください。他の回答も見るQ「memcpy」と「strcpy」についてC言語の初心者です。先日、課題として以下のようなことを言われました。「memcpyとstrcpyについて、メモリ破壊が起こるとしたらどんな場合が考えられるか、簡単にまとめて報告してみて下さい。私にはメモリ破壊というニュアンスが分からないのですが、どちらの関数も必要以上にコピーを行ったときに起こるメモリ破壊ということなのでしょうか?それとも、何か特別な意味があるのでしょうか?C言語に詳しい方がいましたら、是非、教えて下さい。Aベストアンサーメモリ破壊とは、「当然そこに入っているべき値」を、不用意に上書きしてしまうことです。いう宣言をしたとします。後ろの未定メモリ100バイトを上書きしてしまいます。この未定メモリには、もしかしたら別の変数があるかもしれませんし、プログラムの一部があるかもしれません。OSのシステム領域かもしれません。プログラムは正常に動かなくなります。通常はメモリエラーが出て停止しますが、最悪の場合、メモリ上のOSを破壊してリセットするしかなくなったりもします。これがメモリ破壊です。C++で、Cのプログラムを作成しているものです。4.0)文字列の扱いについて、質問します。パラメータとして、strは以下のような状態あるとします。使用すると異常終了します。したらよいのでしょうか。アドバイスをお願いします。*p=(char*)calloc(10,10);printf("%d\n",func(p));}他の回答も見るQDWORDの実際の型は何でしょうかVC++.NETの環境です。数値を比較しようとしました。int型のようにも見えます。int型であると記述されています。int型ならこのワーニングはでないはずなのですが、なぜでるのでしょうか。DWORDの実際の型は何なのでしょうか。ご存じのかたおりましたら、教えていただけませんでしょうか。型定義が知りたいのならば、宣言ファイルを見れば疑問を挟む余地もありません。DWORD;"と宣言されています。Studioを使っているのならば、知りたい型の上にマウスポインタを置いて右クリック、ポップアップメニューの「定義へ移動」または「宣言へ移動」で簡単に知ることが出来ます。ここに処理を書く}という関数が必要なようです。他の回答も見るQfgetsで拾われる改行文字を削除したいお世話になりますC言語初心者のものです。今課題でC言語を用いたプログラミングをFedora上でやっています。問題は、fgetsでテキストファイルから、取得した文字列の中から改行文字を削除できないことです。文字変数のアドレスはわかっているのですが、終端文字に置換しようとすると、セグメントエラーになってしまいます。これは如何にして解決すべきでしょうか。Aベストアンサーポインタとかアドレスとか、C言語の用語としてあるものを別の意味に使うとまぎらわしいです。;に対しての&cが思い浮びます。配列なら「添字」、意味的には「x文字目」ですね。}/nが\nの間違いなら、この方法で半分正解です。広い範囲(可能なら全体)で見ないことにはなんとも言えません。等としておく、等といった対策が必要です。ポインタとかアドレスとか、C言語の用語としてあるものを別の意味に使うとまぎらわしいです。;に対しての&cが思い浮びます。配列なら「添字」、意味的には「x文字目」ですね。}/nが\nの間違いなら、この方法で半分正解です。広い範囲(可能なら全体)で見ないことにはなんとも言えません。fgetsが...続きを読む他の回答も見るQCStringからchar*への型変換について教えてください。CString型/char型がありましたが、CString型をchar*型に変換する方法を教えていただければありがたいです。例が載ってないのでよくわかりませんでした。目的にもよりますが一時的にchar配列として使いたいならCString::GetBuffer()が利用できます。char配列としての利用が終わったらCString::ReleaseBuffer()する必要がありますが。LPCTSTRで文字列ポインタが得られます。CStringオブジェクトをいじると無効ポインタなる可能性があるので気をつけてください。Classリファレンス→CString→クラスメンバで確認してください。);//"aaaabbbb"?この上のコードは間違っていますよ。変数a、bに入っているのはあくまでも文字列の"ポインタ"です。);とすると、aがさしているメモリは5バイトしかないのでメモリを破壊してしまいます。szb);としないとだめです。ポインタ変数はNULLで初期化可能です。他の回答も見るQ構造体の初期化方法についてこんばんわ。何度も申し訳ありません。2003を用いてコンソールプログラミングを行っています。前回この掲示板を利用して複数回実行するプログラムを作成し、そこに構造体を用いたプログラムを作成しました。以下に概要を示します。グローバルで構造体を宣言しているため、複数回実行を行うプログラムでは前回の値が格納されたままであると思い、毎回実行時に構造体の初期化を行いたいと思っています。そこで、以下に示します構造体の初期化はどのように記述すればよいのでしょうか?0で初期化したいと思っています。lossPkt;}rdata[MAX];main(){//for文で複数回実行処理for(i=0;i<=5;i++){//ここで構造体の初期化を記述する//例として、5回プログラムを実行する}}こんばんわ。何度も申し訳ありません。2003を用いてコンソールプログラミングを行っています。前回この掲示板を利用して複数回実行するプログラムを作成し、そこに構造体を用いたプログラムを作成しました。以下に概要を示します。グローバルで構造体を宣言しているため、複数回実行を行うプログラムでは前回の値が格納されたままであると思い、毎回実行時に構造体の初期化を行いたいと思っています。★まとめ・既に『memset』関数や、『ZeroMemory』関数の回答があるので構造体の全体、1部の初期化の記述例を紹介します。<memory.h>』を記述しないとメモリ関係の関数が利用できません。<windows.h>』があればそのまま利用できます。