爲什麼我的comportstr在此代碼中被更改爲垃圾值?我不明白我的char數組如何改變值,如果沒有關於它的改變。這兩個打印語句之間沒有任何其他內容。爲什麼當另一個函數被調用時,這個字符數組會改變值?
int main(int argc, char* argv[])
{
char comportstr[10];
sprintf(comportstr,"COM%d",COMPORT_NUM);
if(DEBUGGING) fprintf(stderr,"str is: %s\n", comportstr); //prints str is: COM3
sprintf(curtime , "%s" , currentDateTime());
if(DEBUGGING) fprintf(stderr,"str is: %s\n", comportstr); //prints str is: ;32
}
以下是currentDateTime的作用。它根本不修改comportstr。
// Gets current date/time, format is YYYY-MM-DD.HH;mm;ss
const std::string currentDateTime()
{
time_t now = time(0);
struct tm tstruct;
char buf[80];
tstruct = *localtime(&now);
// Visit http://www.cplusplus.com/reference/clibrary/ctime/strftime/
// for more information about date/time format
strftime(buf, sizeof(buf), "%Y-%m-%d.%H;%M;%S", &tstruct);
return buf;
}
什麼是CURTIME? –
char curtime [16];對不起,我離開了! – user2619824