我需要編寫一個函數,使用malloc創建一個雙指針。寫一個函數malloc雙指針
這是我宣佈我的雙指針,因爲我通常會:
double **G;
mallocDoubleArr(G, numNodes);
隨着函數是:
void mallocDoubleArr(double **arr, int size)
{
int i, j;
*arr = malloc(size * sizeof(double*));
for(i = 0; i < size; i++)
{
arr[i]= malloc(size*sizeof(double));
for (j = 0; j < size; j++)
{
arr[i][j] = 0;
}
}
}
double **G; //Create double pointer to hold 2d matrix
*G = malloc(numNodes * sizeof(double*));
for(i = 0; i < numNodes; i++)
{
G[i] = malloc(numNodes*sizeof(double));
for (j = 0; j < numNodes; j++)
{
G[i][j] = 0;
}
}
現在我試圖取代它爲什麼這不起作用?
您可以使用'calloc'保存一些作品。它基本上與'malloc'完全相同,但也將內存設置爲零,這意味着你可以消除你最內層的for循環。 – patrickvacek