но у меняпочемуто не получается заполнить эту память

Вот хотел написать функцию substr но она возвращает пустой указатель.
C++ |
1
2
3
4
5
6
7
8
| char *substr(const char *str, int start, int length) {
char *res = (char*)malloc(length+1);
for(int i=start;i < length; ++i) {
*res++ = str[i];
}
*res = '\0';
return res;
} |
|
и так же попробовал просто в цыкле заполнить указатель значениями но место этого случайные символы из памяти
C++ |
1
2
3
4
5
6
7
| char *a = (char*)malloc(11);
int i = 0;
while(i < 10) {
*a++ = i++;
}
std::cout << strlen(a) << std::endl << a; |
|
длина 12 а в значении случайные символы из памяти