アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは!

現在、GDBを使用しています。
変数の値を変更する方法を教えてください。

普通、変数の値を変更する場合、

(gdb)set var 変数名=変更したい値

で変更できると思うのですが、

構造体内のある変数を変更する場合はどのようにすればよろしいでしょうか?

例えば下記の場合、
(gdb)print 構造体名.変数名
$12 = "abab"
(gdb)set var 構造体名.変数名=変更したい値

と入力すると、下記のエラーメッセージが出ます。
[Too many array elements]

何は方法はありますでしょうか?

宜しくお願いいたします。

A 回答 (2件)

#1です。


>ABCD"を"EFGH"に変更したい
文字列としてセットする方法があります。
但し、char data1[4];の場合は3文字+終端NULLになりますので、
set data_info.data1="EFG"
として、次に
set data_info.data1[3]='H'
とするしかないですね。
    • good
    • 1
この回答へのお礼

上記の方法でやりたいと思います。

本当に早いご回答ありがとうございました。

お礼日時:2004/01/29 21:23

>下記のエラーメッセージが出ます。


>[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; /* 宣言 */

またまた質問で申し訳ございません。

宜しくお願い致します。

補足日時:2004/01/29 20:34
    • good
    • 0
この回答へのお礼

tatsu99さん、はじめまして!

早速のご回答ありがとうございます。

確かに構造体の変数は配列になっています。
教えて頂いた方法で変更できました。
ありがとうございます。

お礼日時:2004/01/29 20:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています