【发布时间】:2017-01-11 12:12:48
【问题描述】:
我在尝试将字符串的一部分复制到另一部分时遇到问题。鉴于这两个 char 指针:
line points at string cointaining: "helmutDownforce:1234:44:yes"
username points at: NULL
这是我将这些指针作为输入的函数:
char* findUsername(char* line, char* username){
char* ptr = strstr(line, ":");
ptrdiff_t index = ptr - line;
strncpy(username, line, index);
return username;
}
我在 strncpy 期间遇到分段错误。怎么会?我想要的结果是返回指向包含 helmutDownforce 的字符串的指针的函数。
【问题讨论】:
-
您是否将
NULL指针传递给strncpy()? -
寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建最小、完整和可验证的示例。
-
将调用代码发布到
findUsername()。
标签: c strstr strncpy ptrdiff-t