使用功能的strstr我使用的strstr函数查找字符串1在字符串2和使用的sprintf所得分配给一个变量。但是,如果没有找到匹配的字符串,那么在为变量分配一个空指针时会出现'Memory Fault(Core Dump)'错误。可以帮助我错过了内存分配。 (注:?在HP C,但与Solaris GCC编译器编译时相同的代码工作得很好存储器故障(核心转储) - ,而在sprintf的
#include <stdio.h>
int main() {
char s1 [] = "My Car is Green";
char te [300];
sprintf(te,"%s",strstr (s1, "Car"));
printf("Result : %s\n",te);
te[0]='\0';
sprintf(te,"%s",strstr (s1, "Where"));
printf("Result : %s\n",te);
te[0]='\0';
}
Output:
Result : Car is Green
Memory fault(coredump)
请帮我在这
'的strstr(S1“在哪里“)'返回'NULL'。不应期望printf打印出“NULL”。 – BLUEPIXY
而且要记住,NULL是不一样的长度为零的空结束的字符串...它之所以会在一个平台上工作,而不是另一种是由于与非关联NULL相关的“未定义行为”。 – bazza
你预计在那一行发生了什么? –