我正在尝试将数据从我知道其长度的缓冲区复制到从给定索引开始的char [],问题是数据包含null,因此程序崩溃以查找分段错误。
以下是我的代码示例:
char *tmp = list->at(0); //list->at(0) return a pointer to the data
char *pEnd = tmp;
for (i = 0; i<size;i++)
{
buffer[i] = *pEnd ; //<<<-----here I got the segmentation fault
pEnd++;
}
答案 0 :(得分:2)
如果您说list->at(0)
返回NULL
那么指针pEnd
将为NULL
。
因此,执行此*pEnd
将取消引用NULL指针,这显然会导致错误。
如果你想为此而烦恼,可以在取消引用之前检查指针。例如:
if(pEnd == NULL)
//Do nothing or throw error or something
else
//Go ahead and do your stuff