int *t;t=calloc(5,size(int));对不对
时间: 2023-09-13 21:05:27 浏览: 91
### 回答1:
这段代码基本正确,但是缺少了头文件的引用,应该在开头添加#include <stdlib.h>。
正确的代码应该是:
#include <stdlib.h>
int *t;
t = calloc(5, sizeof(int));
### 回答2:
对的。
这行代码的作用是声明了一个名为 "t" 的指针变量,并用 calloc 函数对其进行赋值。calloc 函数在内存中分配了一个大小为 5 个 "int" 类型的连续空间,并将该空间的首地址赋给了指针变量 "t"。
由于是使用 calloc 函数进行内存分配,在分配内存的同时会将所有分配的内存空间初始化为 0。在这种情况下,分配给指针 "t" 的内存空间中的每个元素都会被初始化为 0。
因此,这行代码是正确的,它使用 calloc 函数分配了一个大小为 5 个 "int" 类型的连续内存空间,并将首地址赋给指针变量 "t"。
### 回答3:
不对。
在这段代码中,t是一个指向整型变量的指针。calloc函数的作用是在内存中分配一块指定大小的连续空间,并将其初始化为0。然而,在代码中的calloc函数的使用是错误的。
c中的calloc函数的原型是:
void *calloc(size_t num, size_t size);
参数num表示需要分配的元素数量,参数size表示每个元素的大小。而在给出的代码中,第一个参数为5,表示要分配的元素数量为5个,第二个参数为size(int),表示每个元素的大小为int类型的大小。然而,这里的size(int)是错误的。
正确的写法应该是sizeof(int),表示每个元素的大小为int类型所占的字节数。所以正确的代码应该是:
int *t;
t = calloc(5, sizeof(int));
这样,就可以成功地分配一块大小为5个int类型的连续空间,而且每个元素都已经初始化为0了。
阅读全文