アプリケーションをデバッグするとき、私は100%確信している構造体が4つの文字列で構成されていることをメモリ内で検出しました。私はそれをデータ構造に変換する方法はよく分かりませんが、構造体のポインタアドレスを使って値にアクセスできます。例えば、ここに(例は、それが一貫してメモリアドレスは0x123456に配置されて言うことができますよう)のデータ構造体をメモリにどのように見えるか4つの別個の文字列C++メモリをデータ構造体に変換する
string 1 = ad
string 2 = dgdhkkkkkkhkk
string 3 = ggghhjk
string 4 = dgcfoh
データstructureconsistsであると私は持っています
struct reversedConnectionDat_t
{
char * data1;
char * data2;
char * data3;
char * data4;
}
のようなデータ構造体を作成しようと、私はデータ
reversedConnectionDat_t * storeDat = (reversedConnectionDat_t*)0x123456;
print(storeDat->data3);
にアクセスしようとしたか、これはあります
しかし、うまくいかないようです。私はメモリから文字列を正しく読み込んでいませんか?
(ああと文字列が時々すなわち、時々、文字列1の長さと文字列3に7になり、私は上記の投稿のコード例に掲示するものから変更されますのみの長さなどで2になります...)
メモリにはポインタが含まれていないので、構造体もそうではありません。プレーンchar配列を使用します。パディングとアラインメントを無効にしてください... – Thomas
彼らは私に文字列のようには見えませんが、どういうことが彼らのものだと思いますか? – harold
@harold私は彼らが渡されている機能を知っています。この関数は4つのパラメータをとり、4つすべてが文字列です。 – reflexdev