1
我在C中有一個矩陣,我想創建另一個具有比第一個矩陣更多的雙行的行。添加的行我希望具有第一個矩陣的值,但改變了符號。我想了解動態分配,並且我不明白我錯在哪裏。該編譯器說的錯誤是:」 invalid conversion from void* to int*"
這裏是我的代碼:在C中的擴展矩陣
#include <stdio.h>
#include<conio.h>
#include<stdlib.h>
int *extend_matrix=NULL;
int *matrix=NULL;
int *negative_matrix=NULL;
int main(void)
{
int i,j,m,n;
printf("Enter the number of rows and columns of matrix\n");
scanf("%d%d", &m, &n);
int *matrix = (int *)malloc(m * n * sizeof(int));
int *negative_matrix=(int*)malloc(m*n*sizeof(int));
printf("Enter the elements of first matrix\n");
for ( i = 0 ; i < m ; i++)
for (j = 0 ; j < n ; j++)
scanf("%d", &matrix[i][j]);
for(i = 0 ; i < m ; i++)
for(j = 0 ; j < n ; j++)
printf("the matrix is: \n",matrix[i][j]);
negative_matrix=-matrix[i][j];
for(i=0;i<m+m;i++)
extend_matrix[i]=realloc(matrix[i],sizeof(int)*(m+m));
for(j=0;j<n;j++)
extend_matrix[j]=realloc(matrix[j],sizeof(int)*n);
extend_matrix[i][j]=matrix[i][j]+negative_matrix[i][j];//how to concatenate them?
getch();
return 0;
}
有多個問題中解脫出來僅first_matrix您碼。你在說'int * matrix',然後把它稱爲'matrix [i] [j]'。這是行不通的。你想達到什麼目的? – cnicutar 2013-03-03 21:30:37
在將矩陣聲明爲int *矩陣之後,矩陣[i] [j]'似乎很討厭,它甚至不應該編譯。至於連接:它取決於你的矩陣是如何佈局的 - 你可以使用你自己的循環或簡單的'memcpy()'。 – 2013-03-03 21:30:54
我在說int *矩陣,但是我怎樣才能給它添加值呢?我不知道。 – Viva 2013-03-03 21:33:00