我瀏覽過以前回答過的有關指針和矩陣的問題,但在這些情況下,矩陣被看作是指向指針的指針。但是,我試圖創建一個函數,它使用一個簡單的指針和另一個打印它的函數來讀取矩陣。 這是我的代碼,閱讀功能似乎正常工作,但程序在打印部分崩潰。如果我從printf語句中刪除了「*」,程序將工作(即它將數字從4打印到4我認爲這是正常的,因爲int存儲在4個字節中)。使用指針打印正方形矩陣
void readm(int *p,int n)
{
p=(int *)malloc(sizeof(int)*n*n);
for(int i=0;i<n*n;i++)
scanf("%d",p+i);
}
void printm(int *p,int n)
{
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
printf("%d ",*(p+(i*n)+j));
printf("\n");
}
}
將此標記爲C可能更好。 – juanchopanza
您是什麼意思程序崩潰? 'SEGFAULT'?你還可以使用這些函數包含代碼嗎? – Olotiar
[不要從'malloc'返回](http://stackoverflow.com/a/605858/440558)。 –