关于字符串程序的问题
编了一段从字符串 s 中获得子字符串(s[n1]到s[n2])的程序。 编译过程中发现warning:warning C4047: '=' : 'char *' differs in levels of indirection from 'const int '
运行时会出现错误。请教下高手,问题出在哪里?
注:不必帮忙改成其它形式的函数,例如改变形参或返回值,或者把指针改成数组啥的。我就是想知道下面这段程序的错误出在哪里~
谢谢啦~
程序代码:
#include<stdio.h> #include<string.h> #include<stdlib.h> char *mysubstr(char *s, int n1, int n2) { int i = n1, j = 0; char *str; str = (char*)malloc(sizeof(char)*(n2-n1+2)); for(i=n1; i<=n2; i++) { str[j] = s[i]; j++; } return str; } main() { char str[]="abcdefghijklmn"; char *substr; substr=(char*)malloc(30); substr=(str, 3,8); puts(substr); return(0); }