小帅才1 发表于 2023-2-24 23:57:43

小白求助!!C语言动态内存分配问题

int main(void){
    char s[] = "bbbbb";
    int size = sizeof(s) / sizeof(s);
//    int *parr = (int *) calloc(3, 4);
    int *parr = (int *) malloc(20);

    printf("%d\n", sizeof (parr));

   return 0;
}

在进行动态内存分配的时候,使用malloc和calloc进行太分配无论怎么修改两个函数里的参数,使用sizeof(parr)测试parr的大小,一直显示是8字节,不明白为什么会出现这样的错误



dolly_yos2 发表于 2023-2-25 00:01:39

因为 malloc/calloc 返回的是固定大小的指针,和分配的空间大小无关

小帅才1 发表于 2023-2-25 08:41:19

dolly_yos2 发表于 2023-2-25 00:01
因为 malloc/calloc 返回的是固定大小的指针,和分配的空间大小无关

阿对,想起来了,我一直想着是8个字节,是两个int类型的,忘记了我的电脑是64位,地址就应该是8字节,我说咋一直不对呢
页: [1]
查看完整版本: 小白求助!!C语言动态内存分配问题