看板 NCTU-STAT100 關於我們 聯絡資訊
#include <stdio.h> #include <stdlib.h> void f1(float (*a)[2], int m, int n); void f2(float **a, int m, int n); void f3(float (*a)[2], int m); void f4(float a[][2], int m); int main(){ float z[4][2] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0}; printf("&z: %p\n",&z); printf("&z[0]: %p\n",&z[0]); printf("&z[0][0]: %p\n",&z[0][0]); printf("z: %p\n",z); printf("z+1: %p\n",z+1); f1(z, 4, 2); float **b; b = (float **)malloc(4*sizeof(float *)); *b = (float *)malloc(4*2*sizeof(float)); int i,j ; for( i = 0; i < 4 ; i++) *(b+i) = *b + 2*i; printf("\nf1:\n"); for( i = 0 ; i < 4 ; i++ ){ for( j = 0 ; j < 2 ; j++ ){ b[i][j]=z[i][j]; } } f2(b, 4, 2); free(*b); free(b); float **c; c = (float **)malloc(4*sizeof(float *)); printf("\nf2:\n"); for( i = 0 ; i < 4 ; i++ ) *(c+i)=z[i]; f2(c, 4, 2); free(c); printf("\nf3:\n"); f3(z,4); printf("\nf4:\n"); f4(z,4); } void f4(float a[][2], int m){ int i,j; int n; n = sizeof(a[0])/sizeof(a[0][0]); printf("n = %d\n",n); for( i = 0 ; i < m ; i++ ){ for( j = 0 ; j < n ; j++ ){ printf("%f\t", a[i][j]); } printf("\n"); } } void f3(float (*a)[2], int m){ int i,j; int n; n = sizeof(a[0])/sizeof(a[0][0]); printf("n = %d\n",n); for( i = 0 ; i < m ; i++ ){ for( j = 0 ; j < n ; j++ ){ printf("%f\t", a[i][j]); } printf("\n"); } } void f2(float **a, int m, int n){ int i,j; for( i = 0 ; i < m ; i++ ){ for( j = 0 ; j < n ; j++ ){ printf("%f\t", a[i][j]); } printf("\n"); } } void f1(float (*a)[2], int m, int n){ int i,j; for( i = 0 ; i < m ; i++ ){ for( j = 0 ; j < n ; j++ ){ printf("%f\t", a[i][j]); } printf("\n"); } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.7.248