相关疑难解决方法(0)

无论如何从命令行获取c程序的返回值?

我理解如果我写一个bash脚本我可以获得返回值,但是无论如何在没有脚本的情况下得到返回值,只是命令行?

c linux

32
推荐指数
2
解决办法
2万
查看次数

return(sizeof(array))给出了意想不到的结果

我编写了以下程序来确定静态数组的大小.当我跑它时,我得到了一个我无法解释的结果.我已经在stackexchange和google上做了一些搜索,但我读过的内容并没有给我一些提示.

#include <stdio.h>
int main()
{
  int arrSize, intSize, elemSize;
  int input[9][9];
  arrSize = sizeof(input);
  intSize = sizeof(int);
  elemSize = sizeof(input[0]);
  printf("Array: %d, Element: %d, Int: %d\n", arrSize, elemSize, intSize);
  return sizeof(input);
}
Run Code Online (Sandbox Code Playgroud)

当我编译并运行该程序时,我得到以下结果(使用linux):

./a.out ; echo $?
Array: 324, Element: 36, Int: 4
68
Run Code Online (Sandbox Code Playgroud)

我在http://c-faq.com/malloc/sizeof.html上看到,它sizeof是在编译时计算出来的,如果我将返回值更改为return sizeof(input[0])I get 36,4那么我得到的是如果我将其更改return sizeof(input[0][0])为预期的那样.那么为什么要sizeof(input)给予68回报,但是当存储时它会给出预期的324

c arrays sizeof return-value

5
推荐指数
1
解决办法
121
查看次数

标签 统计

c ×2

arrays ×1

linux ×1

return-value ×1

sizeof ×1