關於分配內存

在C語言編程中分配內存時,調用matlab的內存分配函數:

double *hist = (double *)mxCalloc(blocks[0]*blocks[1]*18, sizeof(double));
double *norm = (double *)mxCalloc(blocks[0]*blocks[1], sizeof(double));

最後能得出正確的結果,而是用C語言的標準內存分配函數:

double *hist = (double*)malloc(blocks[0]*blocks[1]*18*sizeof(double));
double *norm = (double*)malloc(blocks[0]*blocks[1]*sizeof(double));*

卻無法得出正確的結果。真的好奇怪。最後沒辦法使用了C語言中的函數:

double *hist = (double*)calloc(blocks[0]*blocks[1]*18,sizeof(double));
double *norm = (double*)calloc(blocks[0]*blocks[1],sizeof(double));

最終得到正確的計算結果!

發佈了19 篇原創文章 · 獲贊 1 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章