1
このプログラムでセグメンテーションフォルトが発生しています。私はどこにポインタptr
をインクリメントしているのかを、ptr++
と考えています。 ptr
は構造体タイプのポインタです。私はまた、メモリを割り当てるためにmalloc
関数を使用しました。解決策を提案してください。構造体へのポインタを増分する際にセグメンテーションフォルトが発生する
#include <stdio.h>
#include <stdlib.h>
#define DATA 3000
int main() {
struct two {
char SName[15];
float m15, Mb, v, v_Si, R_Si, t;
};
struct two * ptr;
ptr = (struct two *) malloc(DATA * (sizeof(struct two)));
float min_m15, min_Mb, min_v, min_v_Si, min_R_Si, min_t;
float max_m15 = 1.93;
min_m15 = 0.93;
min_Mb = -19.69;
min_v = 10.0;
min_v_Si = 8.5;
min_R_Si = 0.1;
min_t = -5.0;
for (min_m15 = .93; min_m15 <= 1.93; min_m15 = min_m15 + .1) {
ptr -> m15 = min_m15;
ptr -> Mb = min_Mb;
ptr -> v = min_v;
ptr -> v_Si = min_v_Si;
ptr -> R_Si = min_R_Si;
ptr -> t = min_t;
ptr++;
}
free(ptr);
return (0);
}