"error C2007: #define 構文" に関する原因と対処

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

スポンサード リンク

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

コンパイルエラーメッセージ:
error C2007: #define 構文

ソース(バグ有り):

#include <stdio.h>
#include <stdlib.h>
#define  100
int main()
{
	int i;
	int *heap;
	heap = (int *)malloc(sizeof(int) * NUM_OF_INT);
	if (heap == NULL)
{
printf("メモリ確保に失敗しました\n"); } for (i = 0;i < NUM_OF_INT;i++) { heap[i] = i; } for (i = 0;i < NUM_OF_INT;i++) {
heap[i] = i;
printf("%d\n",heap[i]); } free(heap); return 0; }


原因:
#define の構文に誤りがあります。

この例では #define の後に識別子 が指定されていません。

対処:
#define の構文を見直します。

#define <識別子> <値>


ソース(修正済み):

#include <stdio.h>
#include <stdlib.h>
#define NUM_OF_INT 100
int main()
{
	int i;
	int *heap;
	heap = (int *)malloc(sizeof(int) * NUM_OF_INT);
	if (heap == NULL)
{
printf("メモリ確保に失敗しました\n"); } for (i = 0;i < NUM_OF_INT;i++) { heap[i] = i; } for (i = 0;i < NUM_OF_INT;i++) {
heap[i] = i;
printf("%d\n",heap[i]); } free(heap); return 0; }

スポンサード リンク



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