LINUX.ORG.RU

История изменений

Исправление Bizun, (текущая версия) :

это на стороне вызывающего(предзагрузка) или на стороне функции?

Я бы так сделал, скорее всего. Но если размеры массива фиксированы - то malloc нафиг не нужен.

#include <stdlib.h>
#include <stdio.h>

int my_func_with_array(int original_array[], int size) {
    int *copy_of_array;
    copy_of_array = malloc(sizeof(int) * size);
    for(int i = 0; i < size; i++)
        copy_of_array[i] = original_array[i];
    // твой код, работающий с массивом-копией copy_of_array
    // ...
    // после всех манипуляций с массивом
    free(copy_of_array);
}

int main (int argc, char *argv[]) {
    int my_arrray[] = {1, 2, 3, 4, 5};
    my_func_with_array(my_arrray, 5);
}
П.С. для С99. Если юзаешь более старую, объявление переменной i вынеси из цикла.

Исходная версия Deleted, :

это на стороне вызывающего(предзагрузка) или на стороне функции?

Я бы так сделал, скорее всего. Но если размеры массива фиксированы - то malloc нафиг не нужен.

#include <stdlib.h>
#include <stdio.h>

int my_func_with_array(int array[], int size) {
    int *copy_of_array;
    copy_of_array = malloc(sizeof(int) * size);
    for(int i = 0; i < size; i++)
        copy_of_array[i] = array[i];
    // твой код, работающий с массивом-копией copy_of_array
    // ...
    // после всех манипуляций с массивом
    free(copy_of_array);
}

int main (int argc, char *argv[]) {
    int my_arrray[] = {1, 2, 3, 4, 5};
    my_func_with_array(my_arrray, 5);
}
П.С. для С99. Если юзаешь более старую, объявление переменной i вынеси из цикла.