0
任何想法爲什麼會發生這種情況?錯誤:無法將類型「void *」的值分配給類型爲「float *」的實體
float *image;
long size_img=par->N*par->M;
image = calloc(size_img, sizeof(float));//the compiler shows error here
的錯誤是
我應該做的強制轉換?假的事情是我在程序的其他地方做了同樣的事情,並且沒有顯示錯誤。
我有這樣的一個結構的一部分,我命名爲票面
long *tbegin;
,然後我做
par->tbegin = calloc(SUMA_J, sizeof (long));
而且我沒有得到任何錯誤。
奇怪的是,它適用於另一種情況。我一直在使用gcc進行編譯,但現在我使用nvcc,因爲我在Cuda中有一部分代碼。難道是nvcc使用gcc的情況下工作和nvcc它不工作? – Atirag
@Atirag:「其他情況」在哪裏?相同的文件?其他文件?正如我上面所說的,語言的選擇是基於每個文件進行的,這就是爲什麼它可以輕鬆地在一個文件中編譯(編譯爲C)並且無法在另一個文件(編譯爲C++)中工作。什麼是您的文件的擴展名? '.c'? '.cpp'?還有別的嗎?你爲每個文件傳遞給編譯器的命令行開關是什麼? – AnT
單獨的文件。另一種情況是在.c文件中,錯誤情況在.cu文件中,所以我想就是這樣。非常感謝。 – Atirag