double matrix_a[nrows][ncols]
으로 초기화하지 않고 [i][j]
을 사용할 수있는 C로 행렬을 할당하는 흥미로운 방법을 발견했습니다. 할당은C에서의 메모리 특정 유형의 할당
double (*matrix_a)[ncols] = (double (*)[ncols])malloc(sizeof(double) * (nrows) * (ncols));
입니다. 그러나이 할당 유형을 적절하게 해제하는 방법을 찾을 수 없습니다. 그것은 free(matrix_a)
처럼 간단할까요?
이 할당 독특한 무엇인가? 일반적인 할당 + 캐스트. –
이전에는 본 적이없는 의미에서 유일합니다. 나는'double matrix_a [nrows] [ncols]'를 사용하여 꽤 빨리 할당 된 메모리를 다 써 버렸고 더 효율적인 방법을 찾고있는이 스타일을 발견했다. – mjswartz
방금 힙에 메모리를 할당했습니다. 'double a [m] [n]'은 스택에 할당하고 스택은 힙 (일반적으로)보다 더 제한적입니다. 특별한 것은 없습니다. –