malloc을 사용하여 이중 포인터를 작성하는 함수를 작성해야합니다. malloc 이중 포인터에 함수를 작성하십시오.
이
내가 내 이중 포인터를 선언하는 방법이다 나는 평소 :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;
mallocDoubleArr(G, numNodes);
: 이제
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;
}
}
나는 그것을 교체 시도 왜이 기능이 작동하지 않습니까?
mallocDoubleArr(&G, numNodes);
로 전화 한 후
void mallocDoubleArr(double ***arr, int size);
을 그리고 :
'calloc'을 사용하여 일부 작업을 저장할 수 있습니다. 기본적으로'malloc'과 똑같은 일을하지만 메모리를 0으로 설정하여 가장 안쪽의'for' 루프를 제거 할 수 있습니다. – patrickvacek