gpt4 book ai didi

c - 分配数组后,我如何知道数组中有多少个插槽?

转载 作者:太空宇宙 更新时间:2023-11-04 07:21:07 26 4
gpt4 key购买 nike

#include <stdlib.h>
#include <stdio.h>

#define MAX_NUM 65536
struct Test{
int t;
char args[16][65];

};


int main(int argc, char ** argv) {
//
struct Test *array = malloc(MAX_NUM * sizeof(struct Test*));
printf("%d", sizeof(*array));
for(int i = 0; i < sizeof(*array); i++) {
printf("%d", i);
printf(" ");
array[i].t = 0;

}
array[421].t = 5;
printf("%d", array[421].t);
free(array);
return 0;

}

你好,我如何确定在 malloc 后我有多少个数组槽?当我打印 sizeof(*array) 时,我得到数字 1044,但是当我尝试运行循环并在每个槽中设置测试值时,我在段错误之前只得到 282。 sizeof 和 malloc 有什么区别?为什么我的数组的大小为 1044 时只接受最大 282 的值?为什么我可以在 421 处编辑一个插槽,但它在我的循环中出现高达 282 的段错误?谢谢

最佳答案

我想你的意思是

struct Test *array = malloc(MAX_NUM * sizeof(struct Test));

还是我遗漏了什么?

关于c - 分配数组后,我如何知道数组中有多少个插槽?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21615874/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com