【发布时间】:2014-03-17 21:39:12
【问题描述】:
我想在我的函数中返回 n - 矩阵的大小 - 以及 *p 处的矩阵本身。
文件类似于,例如,
3
10
20
30
这就是我的称呼:
main( )
{
int n, *p;
n = Load_Matrix( p );
}
int Load_Matrix( int **ptr )
{
FILE *fp;
int i, a, n;
fp = fopen( "matrix.txt", "r" );
if ( fp == NULL )
{
printf( "Cannot load file\n" );
return 0;
}
fscanf( fp, "%d", n );
*ptr = (int *) malloc( sizeof(int) *n );
for ( i = 0; i<n; i++ )
{
fscanf( fp, "%d", &a );
*( ptr + i ) = a;
}
fclose( fp );
return n;
}
【问题讨论】:
-
fscanf(fp,"%d",n);--> 应该是&n。Load_Matrix(p);--> 应该是&p。 -
@FilipeGonçalves,此类错误由编译器通过一些优化和警告来捕获。
标签: c function pointers pointer-to-pointer