c - C程序中的非法初始化

标签 c arrays pointers

我试图在 Turbo C 中运行这段代码,但在第 9 行遇到了非法初始化 我做错了什么???

#include<stdio.h>
#include<conio.h>

void main()
{

 int names[] = {23,23,34};

 int *nam[] = { names, names+1 , names +2};

 char *temp;

 clrscr();


 printf("%u" , (nam));

 getch();
}

最佳答案

你遇到这个问题是因为你的编译器已经过时了。在 17 年前被废除的旧 C 标准中,除了编译时常量外,您无法初始化数组。

1999 年出现了一个新的 C 标准,修复了很多这样的缺陷。为了编译此代码,您需要一个支持该语言“C99”更新的编译器。

关于c - C程序中的非法初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39011060/

相关文章:

c - 从文件中删除注释并在控制台上打印

c - 按字母顺序对单词进行排序 C

c++ - 为什么这个指向常量指针的指针赋值是非法的?

c - 将指针地址存储在分配的内存中

c++ - 在引导期间驱动程序初始化后执行操作

c - 如何在 asn1c 中使用封装的结构? (使用包含)

javascript - 将函数作为参数传递给 array.prototype.filter

c++ - 将原始数据包装在 std 容器中,如数组,具有运行时大小

c - C 中的输入文件双指针

C 函数和数组