Я взял паузу от C и снова возвращаюсь в нее.Передача 2D-массивов в C
Если я хочу создать 2D массив двойников, я могу сделать это двумя способами:
double** m_array = (double**) malloc(2*sizeof(double*));
double* m_array = (double*) malloc(2*sizeof(double));
ИЛИ
double array[2][2];
Но, когда я хочу передать malloc'd по сравнению с другими, существуют две конвенции:
//allowed for passing in malloc'd array, but not for other array
func_m(m_array) //allowed
func_m(array) //disallowed
func_m(double** m_array)
//allowed for passing in either array; required for passing in non-malloc'd array
func(m_array) //allowed
func(array) //allowed
func(double array[][2])
Во-первых, мне не нужна никакая информация, кроме того, что это указатель на массив указателей. Но это может быть только массив malloc'd.
Во втором, мне нужно передать длину каждого массива, к которому относится массив двойных точек *. Это кажется глупым.
Я что-то упустил? Заранее спасибо.
Пожалуйста сделайте ваш вопрос более конкретно. –