Как выглядит объявление npa
? Если это указатель, sizeof(npa)
будет размером указателя, а не выделенным размером. Если это строки с нулевым символом в конце (также известные как «C-строки»), используйте strlen
, а не sizeof
. Если это не строки, вам нужно отследить, сколько вы выделили в отдельной переменной.
У меня есть некоторые другие критические замечания по этому коду, возможно, не связанные с вашей проблемой.
while (nopunccount <= strlen(npa)) {
strlen
- операция O (n). Этот код будет проходить строку npa
в каждой итерации цикла. Лучше всего рассчитать длину только один раз.
ra[nopunccount] = npa[strlen(npa) - nopunccount];
Та же проблема здесь.