-
你在 malloc 中没有一种类型的分配内存,但你可以这样写,所以你可以这样写。
printf("%d",sizeof(char)*(strlen(b)+1));
sizeof(char) 是类型的字节,然后乘以您分配的大小。
但是如果里面的A是int,就不可能是这样的,因为一个int占用了4个字节,那么你分配的字节数就是(strlen(b)+1)4个元素,其实malloc分配的字节就是malloc中的参数。
-
#include
#include
#include
char *f(char *b)
char *a;
a=malloc(strlen(b)+1);由于传递 b 是 “gasdg” 并且 strlen(b)=5,因此 malloc 分配了 6 个字节的内存。
int main ()
char *s="gasdg";
f(s);printf("%d",strlen(s));
return 0;
-
char *f(char *b){}
该函数缺少返回值。
添加返回 a; 就是这样。
malloc 函数分配 6 个字节。
-
你在这里做什么,f(s) 的目的是什么,既然有返回值,为什么不接收返回值。 空间已在功能中分配,应相应释放空间。
-
你对 malloc 的使用是错误的,对了,你必须在 malloc 前面添加一个演员表。
-
这都是 if 语句是错误的,而 if 的正确用法是。
如果(语句1)当然只有一个语句的时候,你也不能写大括号,第一个语句不需要加双引号,而且你也混淆了C语言赋值运算符逗号=地和逻辑运算符逗号==地的区别,前者是把右边的变量或常量的值赋给左边的变量, 后者是确定双方是否相等。
因此,程序中的 if 应该这样写:
if(sign=='*')
printf("%d*%d=%d",x,y,x*y);
其他一些如果也是如此,我希望它能帮助到你。
-
括号是否成对,printf 是否写正确 ......
-
** 中的 ** 与标题不匹配。 请单独发送匹配**。
-
sum 赋值的初始值是错误的,它应该是 0
开发工具有:VS2008或VS2010,80x86组装工位 **有一篇宏写给初学者的 C C++,写得很好。 标题是: >>>More
根据写作要求,从以下几个方面进行检查:一是检查试题是否正确,二是检查中心是否清晰,三是检查材料是否典型,四是检查内容是否具体,五是检查水平是否清晰,六是检查句子是否流畅,七是检查标点符号是否正确。 >>>More
如果你有几种喂养方法,但不知道哪一种是正确的,那么,当你问一个问题时,把它发出来,并问一个详细的问题,以便其他人可以帮助你。