2013-02-18 178 views

回答

0

应该定义为char** ptr的参数init()

0

你在init中只传递一个指针。访问您的指针时

void init(char **ptr){ ... } 

而且,无论是:如果是3x3的,那么你需要将自己的签名改为

ptr[i][j] = ''; 

(*(ptr[i])+j) = ''; 

(*(*(ptr+i))+j) = ''; 
0

ptr是一个pointerchar不是char[][]。所以你应该使用**ptrchar (*ptr)[size_of_2nd_dimension]

或简单:

void init(char (*ptr)[size2]) <----- 
{ 
    int i=0; 
    int j=0; 
    for(i=0;i<3;i++) 
    { 
     for(j=0;j<3;j++) 
     { 
      ptr[i][j]=' '; 
     } 
    } 
} 
0

功能无法猜测数组的大小,但因为它是c你可以自己(2个选项)执行操作:

void initA(char* ptr, int totalSize) 
{ 
    int i=0; 
    int j=0; 
    for(i=0;i<totalSize;i++) 
    { 
     *ptr[i]=' '; 
    } 
} 

void initB(char* ptr, int sizeX, int sizeY) 
{ 
    int i=0; 
    int j=0; 
    for(i=0;i<sizeX;i++) 
    { 
     for(j=0;j<sizeY;j++) 
     { 
      *ptr[(i * sizeY) + j]=' '; 
     } 
    } 
} 
相关问题