2013-10-01 57 views
-1

这是给我的memset的段错误,我不知道为什么,我要一个二维数组的具体指标,这应该给我一个字符指针,并允许我使用memeset 。MEMSET不是在外面功能工作

void test(char** test) 
{ 

    int i; 
    for(i=0;i<20;i++) 
    { 

     memset(test[i],0,sizeof(char)*1); 
     return; 
    } 
} 

int main() 
{ 

    char thing[20][20]; 
    int i; 
    for(i=0;i<20;i++) 
    { 
     memset(thing[i],0,sizeof(char)*20); 
    } 
    test(thing); 
    return 0; 
} 
+1

请参阅[C FAQ](http://c-faq.com/ aryptr/pass2dary.html)。数组不是指针。 –

+1

警告都没有的乐趣! '期望'char **',但参数的类型是'char(*)[20]'' – P0W

回答

0

您的参数声明是不正确,应该是:

void test(char test[20][20]) 

或:

void test(char test[][20])