【解決方法】リートコード判定システムを解決する方法、存在しない行でエラーが発生し続ける


#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int* twoSum(int* nums, int numsSize, int target, int* returnSize);


int* twoSum(int* nums, int numsSize, int target, int* returnSize)
{
    int i,j, k= 0;

    for(i=0; i<numsSize; i++)
    {
        for(j= i+1; j<numsSize; j++)
        {
            if((nums[i]+nums[j])== target)
            {
                nums[k]= i;
                k++;
                nums[k]= j;
            }
            else
                printf("Target Not Found!!\n");
        }
    }
    *returnSize= k;

    return nums;
}

int main()
{
    int n;
    printf("Please enter the number of elements exist in the array entered: ");
    scanf("%d", &n);
    int arr[n]; 
    int i;

    for(i=0; i<n; i++)
    {
        printf("Array element no.%d: ",i);
        scanf("%d", &arr[i]);
    }

    for(i=0; i<n; i++)
    {
        printf("Array element no.%d: %d\n",i, arr[i]);
    }

    int target;
    printf("Please Enter the target you want: ");
    scanf("%d", &target);

    int size;
    int* result = twoSum(arr, n, target, &size);

    for(i=0; i<2; i++)
    {
        printf("Array element no.%d: %d\n",i, arr[i]);
    }
    return 99;
}

私が試したこと:

コードは CodeBlocks では機能しますが、LeetCode コンパイラでは機能しません!!!
LeetCode コンパイラは、次の種類のエラーを表示し続けます。

Line 63: Char 5: error: redefinition of ‘main’ [solution.c]
 int main(int argc, char *argv[]) {
     ^~~~

プログラムは63行ではありません。

解決策 1

LeetCode でそのコードをビルドしたところ、別のエラー メッセージが表示されました。

引用:

36 行目: 13 文字目: 実行時エラー: バインドされた可変長配列が非正の値に評価される -1428798312 (solution.cpp)
概要: UndefinedBehaviorSanitizer: undefined-behavior prog_joined.cpp:41:13

もちろん、ほとんどの C コンパイラではスタック上に動的配列を作成できないため、このメッセージは正しいです。

上記のメッセージは、コードを試したときに編集ボックスにあったすべてのテキストを削除しなかったことを示唆しています。

コメント

タイトルとURLをコピーしました