私は動的メモリ割り当てに奇妙な問題があります。 構造体のメンバーを1つだけ動的に割り当てるときはいつも、配列ではなく通常の変数のように1つではなく、たくさん書くことができます。int
これは、いくつかの解説と私のコードで、多分あなたは私が間違ってやって伝えることができるか、私はスキップされ何点:C動的メンバー構造
#include <stdio.h>
#include <stdlib.h>
typedef struct{
int *sign_h;
int max_chars;
} myformat;
int main()
{
myformat *myfile=malloc(sizeof(myformat)); // one struct
myfile->max_chars=100;
myfile->sign_h=malloc(1*sizeof(int)); //size of one int
myfile->sign_h[333]=50; //Is this suppose to work?
printf("test %d",myfile->sign_h[333]); // printf print value of 50
FILE* f1=NULL;
char nume[]="myfile.bin";
f1=fopen(nume,"wb");
fwrite(&myfile,sizeof(myformat),1,f1);
fclose(f1);
return 0;
}
PSを:そして、何C++でしょうか?私はC + +でそれを作る場合、私は別の結果を得る?
おめでとうございます。バッファオーバーフローを発見しました。 –
未定義の動作は未定義です。 – EOF
言語が足で自分自身を撮影することを止めるわけではありませんので、そのことを避けるのはあなたの責任です。 – jamesdlin