c - 声明一个二维字符数组?

标签 c

是否可以像这样声明一个二维数组:

char words[128][25];

然后像这样只分配给它:

int i=0;

while(fscanf(fp,"%s" words[i++]) != EOF){  
 printf("Copied");
}  

我在一段代码中看到它,不明白所以尝试了一下,当它试图运行这一行时,代码块崩溃了。当它被这样声明时,它是一种完全无效的使用数组的方式吗?它编译良好,只是无法运行。

最佳答案

这是使用数组的合法方式;问题似乎出在您身上:

while(fscanf(fp,"%s words[i++]) == EOF){

您只需要在 "%s 之后加上一个结束引号和逗号。

关于c - 声明一个二维字符数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15619276/

相关文章:

编译器 -march 标志基准测试?

c - 生产者消费者的解决方案

c++ - 内存分配是如何完成的

c - 哪个 C99 编译器(Clang 与 GCC)更接近 const 结构字段的标准?

c# - 哪种数据类型最适合 C++ 中 Thrift 通信中的日期时间?

c - 怎么可能引导一个 C 编译器(从源代码)?

c - 我正在尝试编写一个函数,从给定的链表中删除所有奇数元素并返回一个地址

c - 是否可以在 GDB 中修改没有符号表的可执行文件中的变量?

C/C++ Windows 10 x64 (17763) 企业 DACL 问题

c - 如何在c中同时读写pcap文件