Передача динамического массива в функцию - C (СИ) (249645)
Формулировка задачи:
Ох снова я пишу по поводу передачи массивов в функции... Что-то я так и не понял по какому принципу это все работает...
Как передать функции два динамических массива и чтобы функция с первого динамического массива перенесла содержимое во второй массив?
Начну с демонстрации кода:
Это якобы не рабочая моя функция
А это main
Что не хватает?
int TryModifyArray (int *SORTED_M, int SIZE_M, int *RESULT_M, int *SIZE_R) { int size = SIZE_R; for (int i = 0 ; i < SIZE_M; ++ i) { size += 1; RESULT_M[size] = SORTED_M[i]; } *SIZE_R = size; return RESULT_R; }
int main (void) { int First_Massiv[100], Second_Massiv[100], *SORTED_MASSIV, S_SIZE = 0; SORTED_MASSIV = (int*)malloc(S_SIZE * sizeof(int)); for (int i = 0; i < 100; ++ i) { First_Massiv[i] = rand() %100; Second_Massiv[i] = rand() %100; } printf(" MAIN: First_Massiv - > "); Show_Massiv(First_Massiv); printf(" MAIN: Second_Massiv - > "); Show_Massiv(Second_Massiv); int *RESULT_ARRAY, R_SIZE = 0; RESULT_ARRAY = (int*)malloc(R_SIZE * sizeof(int)); SORTED_MASSIV = repElt(First_Massiv, 100, &S_SIZE); printf(" MAIN: S_SIZE - > %d \n", S_SIZE); printf(" MAIN: SORTED_MASSSIV - > "); for (int i = 0; i < S_SIZE; ++ i) printf("%d ", SORTED_MASSIV[i]); printf("\n\n"); TryModifyArray(SORTED_MASSIV, S_SIZE, RESULT_ARRAY, &R_SIZE); printf(" MAIN: RESULT_ARRAY - > "); for (int i = 0; i < R_SIZE; ++ i) printf("%d ", RESULT_ARRAY[i]); printf("\n\n"); free(SORTED_MASSIV); return(0); }
Написал только что вот такую функцию, но при выполнении программы пишет "Ошибка сегментирования"
int TryModifyArray (int *SORTED_M, int SIZE_M, int *RESULT_M, int *SIZE_R) { int *Template_Massiv; int size = SIZE_R; Template_Massiv = (int*)calloc(SIZE_R, sizeof(int)); for (int i = 0 ; i < SIZE_M; ++ i) { size += 1; RESULT_M[size] = SORTED_M[i]; } *SIZE_R = size; Template_Massiv = (int*)realloc(Template_Massiv, sizeof(int) * size); return Template_Massiv; }
Решение задачи: «Передача динамического массива в функцию»
textual
Листинг программы
int TryModifyArray (int **SORTED_M, int SIZE_M, int **RESULT_M, int *SIZE_R)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д