我是 C 新手,正在从事一个需要能够获取子字符串的项目,但我遇到了困难,因为如果我尝试运行我不确定的程序,则会出现关于初始化和核心转储的编译器警告如何解决。
我有一个名为的函数substring
,它传入源字符串、开始索引和结束索引。
下面是我的子字符串函数。
char *substring(char * src, int from, int to)
{
char * dst = "\0";
strncpy(dst, src+from, to);
return dst;
}
下面是我如何调用该函数
char * debug = substring(rowReport[bPartyColIndex], 1, 2);
rowReport 是一个 MYSQL_ROW,而 bPartyColIndex 只是一个等于 0 的 int,用于从 MYSQL_ROW 中引用正确的列。
目前,上面的行有一个编译器警告:
warning: initialization makes pointer from integer without a cast
我无法确定如何解决此警告。
如果我尝试运行该程序,我会得到一个 coredump,它说它是执行strncpy
.