![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
下記の構造体1、構造体2、使うとき何か違いますか。
ソースAのL4のところ、構造体2の場合は問題がないですが、構造体1だったらエラーになりました。落ちろ原因を教えて頂けませんか。
ソースA:
L1: ST_POSTING_CHUNK* pChunk = m_pDocFreqList->m_pHeadChunk;
L2: while(pChunk)
L3: {
L4: pDocFreqOutput->write((const char*)pChunk->data,pChunk->size);
L5: pChunk = pChunk->next;
L6: }
構造体S1:
#pragma pack(push,1)
struct ST_POSTING_CHUNK
{
longsize;
ST_POSTING_CHUNK*next;
unsigned chardata[1];
};
#pragma pack(pop)
構造体2:
#pragma pack(push,1)
struct ST_POSTING_CHUNK
{
long size;
unsigned char data[1];
ST_POSTING_CHUNK*next;
};
#pragma pack(pop)
No.1ベストアンサー
- 回答日時:
構造体自身が変ですね。
1でも2でもdataは可変長だとしっくりきます。
struct ST_POSTING_CHUNK
{
long size;
ST_POSTING_CHUNK* next;
unsigned char data[1]; ---> unsigned char *data;
};
1だとエラー(暴走?)するというより、2の場合に
data[1] のあと、ポインタ(32bitマシンなら4byte)分の有効なメモリが
あるぶん助かっただけなんじゃないでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラムが書けません。 4 2023/01/22 22:57
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- Visual Basic(VBA) VBAで時間(00:00形式)を積算(足し算)したい 1 2022/11/15 17:04
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- 工学 西洋の教会の鐘で巨大な鐘を揺らして鳴らすのは、物理的にどんなメリットがあるの? 9 2022/12/13 08:46
- Visual Basic(VBA) 順列をランダムに発生するプログラム 1 2022/11/16 12:16
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAのプログラムで、DIAG = 1# ...
-
Integer変数をカラにしたいので...
-
「#undef」と「#define」の使い...
-
C++ 構造体の一括初期化 {0}
-
VBAの変数のデータ型を変更する...
-
VB.NETのStructureというのはど...
-
ローカル変数の多重定義
-
C言語のキャストについて
-
ヘッダファイルと構造体
-
異なる構造体のデータのコピー
-
typedefをプログラム中で解除す...
-
VBAにてcolorindexを変数に格納...
-
C言語 配列の長さの上限
-
関数から配列を返すには?
-
構造体のextern方法
-
セグメントエラー
-
nullと""、\\0とEOFの違いにつ...
-
c言語でポインタ変数を用いた配...
-
allocってなんですか?
-
Run-Time Check Failure #3とい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのプログラムで、DIAG = 1# ...
-
Integer変数をカラにしたいので...
-
「#undef」と「#define」の使い...
-
C++ 構造体の一括初期化 {0}
-
構造体のデータを丸ごとコピー...
-
C言語 構造体の中に共用体を定...
-
VBAにてcolorindexを変数に格納...
-
long型のデータをバイト型の配...
-
値が代入されてない時
-
charとucharの違い
-
typedefをプログラム中で解除す...
-
構造体のポインタにNULLが入らない
-
異なる構造体のデータのコピー
-
整数から16進数への変換 現在c...
-
VB.NETのStructureというのはど...
-
VBAの変数のデータ型を変更する...
-
構造体にする理由・利点・使用例
-
winsockのsendtoで送れるデータ型
-
VBAで符号無し整数
-
命名規則 VB 構造体
おすすめ情報