また分からないことが出てきたので、質問させていただきます。
2つの構造体をswap関数でメンバすべてを入れ替える関数を作ったのですが、
うまいこといきません。
メンバの中にまた構造体を組み込んでいるのが原因なのでしょうか?
ソースを載せておきます。
#include <stdio.h>
#include <string.H>
typedef struct{
int number;
char name[64];
}poke_skill;
typedef struct{
int number;
char name[64];
poke_skill tec;
}poke_tag;
void swap(poke_tag *a, poke_tag *b)
{
poke_tag *temp;
*temp = *a;
*a = *b;
*b = *temp;
}
int main()
{
poke_tag poke[2]={ {1,"フシギダネ",{5,"たいあたり"}},
{2,"フシギソウ",{6,"つるのむち"}}
};
printf("%d\n" ,poke[0].number);
printf("%s\n" ,poke[0].name);
printf("%d\n" ,poke[0].tec.number);
printf("%s\n" ,poke[0].tec.name);
swap(&poke[0], &poke[1]);
printf("%d\n" ,poke[0].number);
printf("%s\n" ,poke[0].name);
printf("%d\n" ,poke[0].tec.number);
printf("%s\n" ,poke[0].tec.name);
return 0;
}
コンパイルはエラーは出ないのですが、実行させるとこのようなエラーで止まってしまいます。'System.NullReferenceException' のハンドルされていない例外が test.exe で発生しました。
追加情報: オブジェクト参照がオブジェクト インスタンスに設定されていません。
セグメントエラーのことだとは思うのですが、原因が分かりません。
お忙しいとは思いますが、またお願いします。
開発環境は前回同様、Visual C++ 2008 Express Editionです。