-3

这个程序正在崩溃。在 C 中使用 n 长度数组是否有一些限制?它在 C++ 中工作(使用 cin cout)。谢谢你的时间。

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  int n;
  printf("n\n");
  scanf("%d\n",n);
  int arr[n];
  system("PAUSE");  
  return 0;
}
4

2 回答 2

6

您的代码还有另一个问题:

scanf("%d\n", n);
//           ^^
// should be &n

scanf需要一个指针,而您正在传递int.

于 2013-06-20T18:52:38.217 回答
1

正如我在我的另一个答案中指出的那样,请参见此处

使用时应避免使用格式说明符(或)scanf()以外的字符,因为当您在 scanf 中的引号之间写任何内容时,它希望您输入的部分与原样完全相同,这对于新手来说尤其成问题。%d%s

您的答案中最重要的错误是:

scanf("%d",n)
           ^ 

您必须传递要为其输入的变量的地址,所以它应该是&n.

于 2013-06-21T09:07:29.043 回答