程序代码:
int i,j; *n = 0; for(i=0;i<mm;i++) for(j=0;j<nn;j++) b[(*n)++]=s[i][j]; return *n;
*n++ 不能这样写 n不是数组 n++ 指向未分配的内存
用*n计数后 就不需要再用b++了
*n作为计数器 应该在开始时 清零
函数返回int 需要返回最后的计数值
人生是一场错过 愿你别蹉跎
#include <stdio.h> main() { int fun(int (*s)[10],int *b,int *n,int mm,int nn); int w[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}}; int a[100],i,j,n=0; printf("array a:\n"); for(i=0;i<3;i++) {for(j=0;j<4;j++) printf("%d ",w[i][j]); printf("\n"); } fun(w,a,&n,3,4); printf("array b:\n"); for(i=0;i<n;i++) printf("%d ",a[i]); getch(); } int fun(int (*s)[10],int *b,int *n,int mm,int nn) { int i, j; for(j = 0; j < nn; j++) for(i = 0; i < mm; i++) b[(*n)++] = s[i][j]; return 0; }上次没看清
#include <stdio.h> main() { int fun(int (*s)[10],int *b,int *n,int mm,int nn); int w[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}}; int a[100],i,j,n=0; printf("array a:\n"); for(i=0;i<3;i++) {for(j=0;j<4;j++) printf("%d ",w[i][j]); printf("\n"); } fun(w,a,&n,3,4); printf("array b:\n"); for(i=0;i<n;i++) printf("%d ",a[i]); getch(); } int fun(int (*s)[10],int *b,int *n,int mm,int nn) { int i, j; for(i = 0; i < mm; i++) for(j = 0; j < nn; j++) b[(*n)++] = s[i][j]; return 0; }那就这个