【发布时间】:2010-10-03 22:03:10
【问题描述】:
我想要一个简单的函数,它接收一个字符串并在经过一些解析后返回一个字符串数组。所以,这是我的函数签名:
int parse(const char *foo, char **sep_foo, int *sep_foo_qty) {
int i;
char *token;
...
strcpy(sep_foo[i], token); /* sf here */
...
}
那我这样称呼它:
char sep_foo[MAX_QTY][MAX_STRING_LENGTH];
char foo[MAX_STRING_LENGTH];
int sep_foo_qty, error;
...
error = parse(foo, sep_foo, &sep_foo_qyt);
...
这样我会在编译期间收到警告:
warning: passing argument 2 of 'parse' from incompatible pointer type
然后在执行过程中出现分段错误,这里用 /* sf 标记 */
我的 C 代码有什么问题?
提前致谢
【问题讨论】:
标签: c arrays pointers parameters segmentation-fault