C 代码在 Windows 上运行(使用 Visual Studio 编译)但不能在 Linux 上编译(使用 gcc)

标签 c visual-studio gcc

我目前正在尝试为学校制作一个非常简单的 C 程序,它创建一个 m 整数 n 的数组(两者都由用户输入定义)并返回数组开始的位置或错误消息,如果无法创建数组。它在使用 Visual Studio 编译时运行得非常好,但是当我尝试使用 gcc 编译它时,它抛出了一堆错误消息,我根本不知道是什么导致了它们。

源代码:

#include <stdio.h>
int *create_array(int n, int initial_value);

int main(){
    int *arr;
int num;
int numOfNum;

printf("Store this integer:\n");
scanf("%d", &num);

printf("Store the integer this amount of time:\n");
scanf("%d", &numOfNum);

arr = create_array(num, 1);

if(arr == NULL) printf("ERROR");
else printf("Array stored in this location: %p", arr);
    return 0;
}
int *create_array(int n, int initial_value){
int *pointer;
int i;

pointer = (int *) malloc(sizeof(int) * 10);

for(i = 0; i < n; i++){
    int *p;
    p = pointer;
    p += n*(sizeof(int));
    *p = initial_value;
    }

return pointer;
}

来自 gcc 的错误:

q1.c: In function âmainâ:
q1.c:18: error: missing terminating " character
q1.c:19: error: ânotâ undeclared (first use in this function)
q1.c:19: error: (Each undeclared identifier is reported only once
q1.c:19: error: for each function it appears in.)
q1.c:19: error: expected â)â before âbeâ
q1.c:19: error: missing terminating " character
q1.c:20: error: missing terminating " character
q1.c:21: error: missing terminating " character
q1.c:39: error: expected declaration or statement at end of input

最佳答案

看到奇怪的字符“ânotâ”,我怀疑您使用了错误的文件编码。尝试将代码复制粘贴到 linux 文件编辑器中,然后将其从该编辑器保存到一个新文件中。尝试编译它。

关于C 代码在 Windows 上运行(使用 Visual Studio 编译)但不能在 Linux 上编译(使用 gcc),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6398652/

相关文章:

c++ - 强制调用者捕获返回值并在 C++ 中生成编译错误或警告的编译器标志

c++ - 海湾合作委员会ld : symbol(s) not found for architecture i386

c - GCC 编译器优化选项

c++ - auto 和 __auto_type 之间有什么区别吗?

c - While循环的Printf问题

CMake:定义自定义包含路径

c - 在 C 中将 char* 反序列化为结构体

c# - C++/CLI .obj 和 C# .netmodule 与部分类之间的 LNK2022

visual-studio - checkin TFS 时项目不存在

c - 是否可以估计调用函数在堆栈中需要的大小?