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);
}