從函數返回指針是否正確以下語法?從函數返回指針
bmpfile_t*
bmp_create_from_file(const char *filename, bmpfile_t *bmp)
{
FILE *fp;
fp = fopen(filename, "r");
bmp_get_header_from_file(fp, bmp);
bmp_get_dib_from_file(fp, bmp);
bmp_get_pixels_from_file(fp, bmp);
fclose(fp);
return &bmp;
}
提示 - 它不編譯沒有警告。這是什麼讓你覺得? –
我正在向許多函數傳遞一個指向bmpfile_t的指針,只是想排除我做錯了的可能性。 –
'bmp'是一個局部自動變量,初始化爲函數調用者傳入的值。 '&bmp'產生該局部變量的地址。你永遠不應該從一個函數返回一個本地自動變量的地址。 – jxh