malloc申请一维动态数组的错误
生活随笔
收集整理的這篇文章主要介紹了
malloc申请一维动态数组的错误
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
正確寫法:
??????int *tmp = ( int * )malloc( H*W*sizeof(int) ); ?
??????float?*tmp = ( float * )malloc( H*W*sizeof(float) ); ?
??????double *tmp = ( double * )malloc( H*W*sizeof(double) ); ?
錯誤寫法:
??????double *tmp = ( double * )malloc( H*W*sizeof(double * ) );?
錯誤原因
??????在于字節數的表示不應該加 * 號。所有數據類型加了 * 號后,都變成4個字節
??????正常情況下,int 4字節;float 4字節;double 8字節。
??????之前用malloc申請一維動態數組,用到double型時總是程序崩潰,現在才知道是申請字節數出現問題。寫成double*出錯是因為字節數不對,內存不夠用,其他數據類型都可以順利使用是出于巧合。
總結
以上是生活随笔為你收集整理的malloc申请一维动态数组的错误的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言读取txt文档中的数据
- 下一篇: C语言动态数组建立方法