求江湖遍地是奇葩无删减的百度云资源

关于动态内存申请 各位前辈帮忙看一下 十分感谢! [问题点数:100分结帖人qq_]

确认一键查看最优答案?

本功能为VIP专享开通VIP获取答案速率将提升10倍哦!

关于动态内存申请 。(int*) 这个强制转换类型是否起到了作用如果起了作用,为什么指针长度依旧是初始化定义类型的长度

不使用类型转换依旧可以运行

void类型嘚指针,无法知道sizeof(p[0]);的长度对待void类型,编译器可能按照1字节处理了吧

第一个short *psizeof(p[0]);其实sizeof是一个宏,它计算是的是某个变量的类型长度因此第┅个输出是2;

你的p[0] 申明的时候是什么类型, sizeof就按什么类型计算字节数 而不是按你的p在实际运行的时候,指向的数据的类型去计算字节数

因为sizeof是一个宏,宏是在编译前完成代码替换的 也就是编译前, 编译器就已经计算好sizeof的值了然后将你代码中的sizeof 的地方,替换成一个常量值然后开始编译,所以这个时候 编译器不可能能预测的出来,你的这个p在实际运行的时候到底会指向什么,它只能按你申明p这个變量的时候你申明的类型去计算

(int *) 相当于把malloc的返回值转换成了int*,但由于你的p是void*接下来又隐式转换为void*,所以你转换成int*相当于没意义如果偠int*,你要把p也定义为int*的变量

您好!关于您的代码我看了我觉得是因为您在printf()这里用了%d,所以无论您如何强制转换都是输出同样的结果,十进制整型

(int *) 相当于把malloc的返回值转换成了int*但由于你的p是void*,接下来又隐式转换为void*所以你转换成int*相当于没意义,如果要int*你要把p也定义為int*的变量

在比较新的编译器上是错误!

你的p[0] 申明的时候是什么类型, sizeof就按什么类型计算字节数 而不是按你的p在实际运行的时候,指向的數据的类型去计算字节数

因为sizeof是一个宏,宏是在编译前完成代码替换的 也就是编译前, 编译器就已经计算好sizeof的值了然后将你代码中嘚sizeof 的地方,替换成一个常量值然后开始编译,所以这个时候 编译器不可能能预测的出来,你的这个p在实际运行的时候到底会指向什麼,它只能按你申明p这个变量的时候你申明的类型去计算


你的p[0] 申明的时候是什么类型, sizeof就按什么类型计算字节数 而不是按你的p在实际運行的时候,指向的数据的类型去计算字节数

因为sizeof是一个宏,宏是在编译前完成代码替换的 也就是编译前, 编译器就已经计算好sizeof的值叻然后将你代码中的sizeof 的地方,替换成一个常量值然后开始编译,所以这个时候 编译器不可能能预测的出来,你的这个p在实际运行的時候到底会指向什么,它只能按你申明p这个变量的时候你申明的类型去计算

错误的代码吧,还想得到正确的解释?

普通的语言是偠让别人能够理解你的意思!

同理。计算机的语言是要让计算机理解你的意思!

如果你随便吧一些文字堆砌在哪里,你能让别人明白吗


你的p[0] 申明的时候是什么类型, sizeof就按什么类型计算字节数 而不是按你的p在实际运行的时候,指向的数据的类型去计算字节数

因为sizeof是一個宏,宏是在编译前完成代码替换的 也就是编译前, 编译器就已经计算好sizeof的值了然后将你代码中的sizeof 的地方,替换成一个常量值然后開始编译,所以这个时候 编译器不可能能预测的出来,你的这个p在实际运行的时候到底会指向什么,它只能按你申明p这个变量的时候你申明的类型去计算

在你写的这段代码里, 不起任何作用

问题的关键不在于它起不起作用 而在于你想干什么,我觉得你的因果关系已經颠倒了

你设计一个程序应该是首先确定你的这个程序想实现什么功能,然后根据你想实现的功能挑选(设计)合适的代码

你设计一個程序,首先挑选一些代码出来去堆砌然后由这些你随意挑选的代码,来决定你最终想做的这个程序能实现什么功能

匿名用户不能发表回复!

开机后指示灯只亮一会就灭了(1~3秒左右情况不定),断电了cpu风扇停了,电源风扇也停了没有pc喇叭的嘀嘀声,开不了机是不是电源的问题啊,如果是电源的问题為什么亮一下就不亮是不是有可能是主板的问题?

有谁遇到过这个情况我估计是电源的多数。

我要回帖

更多关于 江湖遍地是奇葩无删减 的文章

 

随机推荐