Как получить доступ к элементам динамического вектора? - PullRequest
0 голосов
/ 27 апреля 2019

Я хочу перейти от матрицы к динамическому вектору через функцию. Затем, чтобы убедиться, что все идет хорошо, я хочу напечатать векторные элементы.

Функция:

    float **v;
    float ** matrix_to_vector(const float m[][2],size_t n){
    v = (float **)malloc(n * sizeof(float*));
        for(i=0;i<n;i++){
        v[i] = (float *)malloc(n * sizeof(float)); 
    for(j=0;j<MAX_COLS;j++){
        *(v[i]) = m[i][j];
    }
}
return v;
}

On main():
float ** vector;
vector = matriz_a_vector(m,cantidad);

for(i=0;i<cantidad;i++){
    for(j=0;j<MAX_COLS;j++){
        printf("%f\t",*(vector[i]));
    }
    printf("\n");
}

Моя проблема в том, что я всегда сохраняю элемент M [I] [1], поскольку, когда цикл завершается, он всегда содержит значение в v [I]. Когда я печатаю, вектор печатает только значения M [I] [1], потому что именно они хранят переменную. Как я могу получить доступ ко всем элементам и распечатать их все?

1 Ответ

0 голосов
/ 28 апреля 2019

решаемая.Как только память была запрошена для v [i] в ​​первом для, то он скопировал значения матрицы в созданный вектор.Затем я выполнил функцию для распечатки этого вектора.

for(i=0;i<n;i++){
        for(j=0;j<MAX_COLS;j++){
            v[i][j] = m[i][j];  
        }
    }   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...