
こんにちは!
現在、GDBを使用しています。
変数の値を変更する方法を教えてください。
普通、変数の値を変更する場合、
(gdb)set var 変数名=変更したい値
で変更できると思うのですが、
構造体内のある変数を変更する場合はどのようにすればよろしいでしょうか?
例えば下記の場合、
(gdb)print 構造体名.変数名
$12 = "abab"
(gdb)set var 構造体名.変数名=変更したい値
と入力すると、下記のエラーメッセージが出ます。
[Too many array elements]
何は方法はありますでしょうか?
宜しくお願いいたします。

No.2ベストアンサー
- 回答日時:
#1です。
>ABCD"を"EFGH"に変更したい
文字列としてセットする方法があります。
但し、char data1[4];の場合は3文字+終端NULLになりますので、
set data_info.data1="EFG"
として、次に
set data_info.data1[3]='H'
とするしかないですね。

No.1
- 回答日時:
>下記のエラーメッセージが出ます。
>[Too many array elements]
構造体は配列になっていませんか。又は、変数が配列になっていませんか。
set var 構造体名[n].変数名=変更したい値
又は
set var 構造体名.変数名[n]=変更したい値
nは配列の添え字(0以上の値)
で、セットできませんか?
この回答への補足
もう一つ質問してよろしいでしょうか??
構造体内の変数が配列になっている場合、
一気に値を変更、出来ないのでしょうか??
<GDB>
(gdb)print data_info.data1
$1 = "ABCD"
※この”ABCD"を"EFGH"に変更したい
ちなみに、構造体は下記の様に定義しています。
typedef struct {
char data1[4];
char date2[4];
} DATA;
DATA data_info; /* 宣言 */
またまた質問で申し訳ございません。
宜しくお願い致します。
tatsu99さん、はじめまして!
早速のご回答ありがとうございます。
確かに構造体の変数は配列になっています。
教えて頂いた方法で変更できました。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
c言語
-
大量のデータを読み込んで表示...
-
Windows Formアプリからコンソ...
-
c#のTLS1.2での通信について
-
visual studio 2022でのC#プロ...
-
C言語の質問です。バイナリ形...
-
double型が正常に認識されてい...
-
Linuxでの開発環境構築や設定の...
-
DLLファイルの逆コンパイラにつ...
-
C言語の関数のextern宣言
-
Cのプログラムからアクセスでき...
-
逆コンパイルと逆アセンブルの...
-
へんな現象
-
Notepad++の関数リスト表示の変...
-
ストリーム 意味について。
-
c言語でイベントフラグを使った...
-
プログラムについて。
-
アプリ開発について 初心者です...
-
C言語でファクト関数を使わずに...
-
C言語 1から20までの逆数の和を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DLLファイルの逆コンパイラにつ...
-
大量のデータを読み込んで表示...
-
c言語
-
gccを行ってもexeファイルが生...
-
visual studio 2022でのC#プロ...
-
【C言語】全角文字の配列を、全...
-
Windows Formアプリからコンソ...
-
VisualStudioでC++クラスを追加...
-
VisualStudio2022でC言語プログ...
-
プログラマー達は何故、プログ...
-
C++でデスクトップGUIアプリ開...
-
逆コンパイルと逆アセンブルの...
-
C言語について。
-
C#でTreeViewのCheckBoxのサイ...
-
C言語の関数のextern宣言
-
int16_t の _t は何?
-
C#でログファイルにファイルパ...
-
ディスプレイの解像度とマウス...
-
c言語でイベントフラグを使った...
-
C言語のことです。写真(見にく...
おすすめ情報