我在 C 中使用 memset 函数并遇到问题。这是我的问题:
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 虚拟机。
任何帮助,将不胜感激。
好的。让我更清楚地说明我在做什么。我正在制作 128 个字节(数组中的 0-127)数据。我从字节 112 到 119 写入 0(NULL)(它运行良好)但是当我尝试在第 120 个字节上写入 0 并运行程序时,它进入无限循环。如果我在第 120 个字节写 1,2,4,6,程序运行良好。如果我在第 120 个字节写入其他数字,程序会出现分段错误。基本上从 120 到 127 的字节有问题。