Я использую функцию memset в C и у меня проблема. Вот моя проблема:
char* tail;
tail = //some memory address
int pbytes = 5;
Когда я вызываю memset, как:
**memset(tail+pbytes, 0 , 8); // It gives no error**
Когда я вызываю memset, как:
**memset(tail+pbytes, 0 , 9); // It goes into infinite loop**
Когда я вызываю memset, как:
**memset(tail+pbytes, 0 , 10); // last parameter (10 or above). It gives Segmentation fault**
Что может быть причиной этого? Программа запускается и выдает выходные данные по желанию, но в конце выдает ошибку сегментации. Я использую виртуальную машину Linux 64.
Любая помощь будет оценена.
OK. Позвольте мне уточнить больше с тем, что я делаю. Я делаю 128 байтов (0-127 в массиве) данных. Я записываю 0 (NULL) из байта 112 в 119 (все идет хорошо), но когда я пытаюсь записать 0 в 120-й байт и запускаю программу, она идет в бесконечный цикл. Если я пишу 1,2,4,6 на 120-м байте, программа работает хорошо. Если я записываю другие числа в 120-й байт, программа выдает ошибку сегментации. В основном, что-то не так с байтами от 120 до 127.