我有下面的代碼,並且當我在第20行(靠近底部)沒有int milli =
運行它時,它運行得很好,但是當我將函數的結果分配給變量( milli
)它引發了分段錯誤。我看不出造成段錯誤的區別。整數分配C分段錯誤
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
// convert a timeval and time to milliseconds of today
int seconds_of_day(struct timeval *sec, struct tm *tim){
long int milli_since_epoch = (sec->tv_sec * 1000)+(sec->tv_usec/100);
return 0; // this is return 0 only for debugging
}
int main(){
struct timeval *timeval_struct;
time_t rawtime;
struct tm *tm_struct;
gettimeofday(timeval_struct, NULL);
time(&rawtime);
tm_struct = gmtime(&rawtime);
int milli = seconds_of_day(timeval_struct, tm_struct);
return(0);
}
你的問題是,timeval_struct從未分配。你需要像'rawtime'那樣做,這樣它就可以在堆棧中,或者手動爲'malloc'存儲器並且在最後「免費」。 – Dave
這很愚蠢。你的'timeval_struct'指針沒有被初始化。 –
在爲其分配一個值之前,您不能使用變量的值。 –