"error C2113: '-': ポインター以外からポインターを減算することはできません" に関する原因と対処

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

スポンサード リンク

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

コンパイルエラーメッセージ:
error C2113: '-': ポインター以外からポインターを減算することはできません。

ソース(バグ有り):

#include <stdio.h>

int main( void )
{
char string[] = "これはテスト文字列です。";
char *p = NULL-
p = string;
while((*p != '\0'))
_fputchar( *(p++) ); }


原因:
オペレーターである - (マイナス) を使用していますが、オペランドがポインタではありません。

ポインター以外からポインタの減算はできません。

この例では入力誤りで セミコロンの代わりに - を指定することによりエラーが発生しています。

対処:
オペレータ - (マイナス) 付近のコードを確認し、オペランドが正しいか確認します。


ソース(修正済み):

#include <stdio.h>

int main( void )
{
char string[] = "これはテスト文字列です。";
char *p = NULL;
p = string;
while((*p != '\0'))
_fputchar( *(p++) ); }

スポンサード リンク



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