当前位置:  技术问答>linux和unix

C程序输出结果为什么不是 100*12 ??

    来源: 互联网  发布时间:2016-12-25

    本文导语:  #include  #include  #include  typedef struct st_type { int i; int a[2]; }type_a; int main() { type_a *p = (type_a*)malloc(100*sizeof(type_a)); printf("sizeof(*p) == %dn",sizeof(*p)); //为什么运行结果为12 ??????? return 0; } ...

#include 
#include 
#include 

typedef struct st_type
{
int i;
int a[2];
}type_a;

int main()
{
type_a *p = (type_a*)malloc(100*sizeof(type_a));
printf("sizeof(*p) == %dn",sizeof(*p)); //为什么运行结果为12 ???????

return 0;
}

|
http://en.wikipedia.org/wiki/Sizeof

The sizeof operator is used to determine the amount of space any data-element/datatype occupies in memory. To use sizeof, the keyword "sizeof" is followed by a type name, variable, or expression. If a type name is used, it always needs to be enclosed in parentheses, whereas variable names and expressions can be specified with or without parentheses. A sizeof expression evaluates to an unsigned size_t value equal to the size in bytes of the "argument" datatype, variable, or expression (with datatypes, sizeof evaluates to the size of the datatype; for variables and expressions it evaluates to the size of the type of the variable or expression). 

注意红色的部分,因为*p被是个变量,所以sizeof会先计算出这个变量所对应类型的size,也就是type_a的size

    
 
 

您可能感兴趣的文章:

  • linux开机运行的程序无法输出
  • 请教:在程序里用system启动一个命令,如何获得这个进程的正常输出和错误输出到一个字符串里?
  • 怎样把标准输出指定到一个文件,这样我便不用关心运行时间长的程序的屏幕输出,待运行完后看文件里的内容就可以了吧?
  • go和python调用其它程序并得到程序输出
  • 程序输出的问题
  • [新手提问]请问在命令行下追踪程序输出信息的方法
  • 有一个7*24运行的服务程序,现在我将这个程序的输出重定向到一个文本,现在要实时读取文本内容,有什么好的办法?
  • java程序在linux系统下中文输出乱码,输出一个汉字对应一个问号
  • 请教crontab中运行的程序输出的信息用什么命令删除?
  • 如何记录程序输出每一行日志的时间?
  • 请教关于dlopen,动态库连接程序的输出函数
  • unix shell中能否将后台运行程序的输出保存到变量中?
  • 请问如何在程序中获得shell命令输出的信息?
  • 开发android应用程序时,用java调用so库输出日志问题
  • linux下程序输出导入到mysql?
  • gcc程序怎么不能将输出重定向到文件或管道呀,你们有这个问题吗?
  • 请问,怎么把某个程序的输出赋给shell变量??
  • shell中如何得到程序的输出值
  • 怎么讲程序的运行时间输出到一个文件里面?
  • 怎么屏蔽控制台程序的打印输出信息
  • 请问gdb是不是只能调试gcc编译的程序,在unix下用其它编译器编译的程序是不是不一定能用gdb调试的?
  • 在内核为2.4版本下开发的程序在2.6下编译是不是很容易会发生错误?不是应该往上兼容吗?
  • linux的程序员是不是比windows程序员的薪水高啊?
  • Linux/Unix下写C程序是不是就像DOS下写程序一样呀?
  • 我的jdk配置有问题吗?为什么提示总是‘javac’不是内部或外部命令,也不是可运行的程序或批处理文件
  • vasual cafe 中有个包叫symantec,它是不是标准的j2se包,如果不是,用它写出的程序如何在通用?
  • 定时top看系统参数,发现我的程序的SIZE项和RES项的数值一直在增加,这是不是说明,我的程序有内存泄漏?
  • Unix下的CC能编译C++的程序吗?不是GCC
  • 请问gcc是不是要加什么参数才能编译C++程序的呢
  • 怎么写程序以支持 linux负载均衡群集,不是冗余
  • 请问用JB7编译过的JAVA程序,哪一个文件是可执行程序啊?我怎么找不到啊?不是CLASS文件吧。双击他直接把JB7打开了。
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • AIX 5.3下调用windows 2000上的exe程序,且AIX下需要得到windows下程序执行的返回结果
  • 一个程序两个结果,请高手分析原因
  • 如何将程序输出的结果重定向到另外的控制台
  • #请问nslookup和程序中使用gethostbyname为什么结果不同?
  • 在C程序里面执行unix的命令的时候怎么获取执行的结果了?
  • 运行的程序的结果答应出日志的问题
  • 菜鸟问题:为什么我的程序编译之后看不到运行结果?
  • 请问下面的程序为什么会得出这样的结果?
  • 请问以下程序结果,谢谢
  • 用gcc编译c程序能通过,为何没执行结果?
  • 我在cygwin里运行自己的程序结果不能print出来。然而在WIN_TC里却可以。这是为什么?
  • 我在SRC目录下写好的源程序,我怎样能写个脚本把写好的源程序放在BIN下呢?另外我想把该程序的输出结果(生成了几个文件),生成到out目录下,
  • win2000下编译java程序看不到运行结果的问题,今天解决加到100分!!!
  • 哪位C语言高手帮我解释下下面程序的运行结果 ???????
  • 怎样调试查找 .so文件中 的段错误? 用gdb查调用它的可执行程序,得不到任何结果啊
  • 如何让我的C程序能定时自动运行呢?并把输出结果放到指定目录下?
  • 我如何才能看到程序的结果
  • Linux 下怎么把程序编译的结果保存输出到一个文本文件中?是什么命令?
  • 怎样在客户端(win2k svr)vc程序里使hp-ux服务器中的c程序运行,另外如何获得其运行结果?
  • 朗讯面试题:下列程序在32位linux或unix中的结果是什么?
  • 重装服务器后IIS网站错误(应用程序中的服务器错误)
  • 为什么我在java程序里启动的一个程序在java程序关闭后,该程序的所有进程都关掉了
  • windows server2008上PowerBuilder程序系统错误解决方法
  • Linux 编程怎么样在程序开启一个程序,和关闭一个程序?
  • c语言判断某一年是否为闰年的各种实现程序代码
  • 请问从一个java程序中如何调用另一java程序,并控制可以其状态(最小化、最大化、结束程序),还有怎样知道那个被调用的程序结束。
  • 程序员的八种级别,你属于哪一级?
  • Linux下的程序是在内存中运行的吗?为什么在程序运行的时候可以删除程序文件?
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 我的程序是用c写的gtk+程序,有个函数的参数要传给它图片的文件名,但是图片和原程序不在同一目录下怎么办?怎么在程序里指定文件的路径
  • 在docker容器中通过apt-get安装新的程序


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3