"error C2110: '+': ポインターにポインターを加えようとしました" に関する原因と対処

このコンパイルエラーの原因と対処に関して説明します。

スポンサード リンク

Microsoft Visual C++にて以下のソースでコンパイルエラーが発生します:

コンパイルエラーメッセージ:
error C2110: '+': ポインターにポインターを加えようとしました。

ソース(バグ有り):

#include <mbstring.h>
#include <stdio.h>

int main()
{
const unsigned char string1[] = "abcdefg";
const unsigned char string2[] = "ab defg";
const unsigned char *p;
p + _mbsspnp( string1 , string2 );
printf( "この文字は含まれません→: %s\n", p); }


原因:
ポインタとポインタを足し算しようとしました。ポインタとポインタは足し算できません。ポインタ同士は減算のみが可能です。

ポインタはアドレスを示すものであり、二つのポインタを足し算して意味がないためです。

対処:
ポインタとポインタを足し算してる箇所を確認し、問題ないか確認します。


ソース(修正済み):

#include <mbstring.h>
#include <stdio.h>

int main()
{
const unsigned char string1[] = "abcdefg";
const unsigned char string2[] = "ab defg";
const unsigned char *p;
p = _mbsspnp( string1 , string2 );
printf( "この文字は含まれません→: %s\n", p); }

スポンサード リンク



[コンパイルエラーコード、メッセージに戻る]