將int-C的空值*轉(zhuǎn)換為2D數(shù)組我試圖在C中轉(zhuǎn)換一個空*指向int*2D數(shù)組的指針。下面是我試圖使用的代碼(刪除了所有無關(guān)的比特):\*assume that i have a data structure called graph with some
*element "void** graph" in it and some element "int order" */void initialise_graph_data(graph_t *graph){
void **graph_data = NULL;
int (*matrix)[graph->order];
size_t size = (graph->order * graph->order) * sizeof(int);
graph_data = safe_malloc(size); /*safe malloc works fine*/
matrix = (int(*)[graph->order])graph_data;
graph->graph = graph_data;}當(dāng)我編譯它時,它工作得很好,但是給了我一個警告:變量“矩陣”是設(shè)置的,但沒有使用。我真的不想使用臨時矩陣變量,因為函數(shù)應(yīng)該只是初始化數(shù)組,而不是在數(shù)組中放置任何內(nèi)容;但是,如果我試圖將圖形_data直接轉(zhuǎn)換為int*時,當(dāng)我將它輔助到圖->圖時,如下所示:graph->graph = (int(*)[graph->order])graph_data;它給我一個來自不兼容指針類型警告的賦值。我只是投錯了嗎?有人對我如何使它在沒有臨時“矩陣”變量的情況下工作有任何建議嗎?或者如果沒有,我能用這個變量做些什么,這樣它就不會給我警告,它已經(jīng)設(shè)置了,但沒有被使用。謝謝
將int-C的空值*轉(zhuǎn)換為2D數(shù)組
慕無忌1623718
2019-06-16 15:11:21