當前位置:編程學習大全網 - 網站源碼 - Cfree源代碼

Cfree源代碼

妳的錯誤在第42行:

*(pday+day)= buf;?

妳的意圖是把buf的雙數組復制到pday+day的內存指向空間。要達到這個目的,必須使用memcpy這樣的內存復制函數,不能直接給它賦值指針。否則以後妳做free for *(pday+day)的時候,實際上就是對buf的堆棧內存空間做free,這樣程序馬上就崩潰了。因為堆棧內存不能被釋放。

所以把這行改成?memcpy(*(pday + day),buf,sizeof(double)* 6);

以便可以正確地釋放內存,

此外,還有兩個錯誤:

計算平均值時,累加前沒有清零求和,所以得到的平均值不是當天的平均溫度;

輸出平均溫度時的57行,printf(" \ n average = % . 1f degree \ n ",* p average);應該改成?printf(" \ n平均值= %.1f度\ n " ,*(paverage+I));

否則,每個輸出的平均溫度是第壹天。

  • 上一篇:具有連續趨勢的源代碼
  • 下一篇:VB怎麽在指定區域查找指定顏色?
  • copyright 2024編程學習大全網