2013-02-08 119 views
-3

对于我的生活,我无法弄清楚如何做到这一点。我以为我可以使用memset()但我遇到了分段错误。清除char **中的内容

char **a; 
token = strtok(NULL, " "); 
if(token != NULL) 
    strcpy(token, strtok(token, "\n")); // get rid of '\n' at end if it exists 
else{ 
    // I want to reset all the values in a to null 
    return; 
} 

我想我甚至可能只是不喜欢while(a[i] != 0)每个元素设置为0,while循环,但即使如此,我得到一个分段错误。这应该很容易吧?我究竟做错了什么?

+0

'a'没有分配任何内存。这是正确的代码示例? – simonc 2013-02-08 16:22:46

+0

'char ** a;'allocate \ set怎么样? – UmNyobe 2013-02-08 16:22:55

+0

“a'中没有”值“;你所拥有的只是一个指向无处不在的指针。 – hobbs 2013-02-08 16:23:04

回答

2

对strtok()的初始调用不应该使用NULL参数作为第一个参数!

检查参考:

http://www.cplusplus.com/reference/cstring/strtok/

究竟是什么你想实现什么?

+0

对不起,我只发布了代码不工作的分段。 – 2013-02-08 16:24:30