-5

長さがわかっているバッファから、指定されたインデックスから始まる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++;
}
4

1 に答える 1

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 
于 2013-01-08T22:45:07.583 に答える