Ошибка в коде по удалению символа

Я написал код для удаления заданного количества символов, но при выводе в консоль, выводит странные символы

#include <windows.h>
#include <iostream>
bool dellsymbol(char* list, char* outlist, int lensymbol)
{
    int len = (lstrlenA(list) - lensymbol);
    printf("LIST:  %s\n", list);
    printf("LENLSIT: %d\n", len);
    for (int i = 0;i < len;i++)
    {
        if (lstrlenA(outlist) < len)
        {
            outlist[i] += list[i];
        }
    }
    return 1;
}

int main()
{
    char dd[] = "VALERA1";
    char* outlist;
    int lensymbol = 2;
    outlist = (char*)malloc(lstrlenA(dd) - lensymbol);
    memset(outlist, 0, (lstrlenA(dd) - lensymbol));
    dellsimbol(dd, outlist, lensymbol);
    std::cout << outlist << std::endl;
}

Вывод VALER¤¤¤¤. Хотелось бы знать где я допустил ошибку


Ответы (1 шт):

Автор решения: krime

Нашел иной более удобный вариант ответа на свой вопрос

char ch[] = "Hello World";
int len = strlen(ch);
ch[len - 1] = '\0';
→ Ссылка