構造体へのポインターの配列を理解できません。この簡単な例を作成して、それらをよりよく理解しようとしました。コンパイルはできますが、以下に示すポイントで「BAD ACCESS」クラッシュ (意味のないポインター) が発生し続けます。なぜこれが間違っているのか説明できる人はいますか?
#include <iostream>
using namespace std;
struct complex_num {
double real_part;
double imag_part;
};
void init_complex(complex_num *element) {
element->real_part = -1.0; // <--- EXECUTION STOPS HERE.
element->imag_part = 1.0;
}
int main(int argc, char *argv[]) {
int n = 5;
complex_num *array[n]; // Allocates for an array of n pointers to
// the complex_num structure, correct?
for (int i = 0; i < n; i++) {
init_complex(array[i]);
}
return 0;
}
これを行うためのより良い方法があることを知っています。私はこれが非常にCスタイルであることを知っています。別のデータ構造を提案しないでください。特に構造体へのポインタの配列に興味があります。ありがとう!