gpt4 book ai didi

c - 在 C 中创建动态数组(指针)/调整其大小时出现问题

转载 作者:行者123 更新时间:2023-11-30 15:24:38 24 4
gpt4 key购买 nike

这的作用应该是非常明显的,但是我的 userLetters 数组的大小不正确......这是怎么回事?我想通过将元素的大小乘以所需的数量来获得数组的大小?

我需要 userLetters 数组的长度与用户字符串的长度相同。

注意:user 是设置为 getenv(USER) 的全局变量

// Get an integer array representing the userid string in values
fprintf(stdout, "user has length %d\n", strlen(user));
int * userLetters = (int*)malloc(sizeof(int) * strlen(user));
fprintf(stdout, "Created userLetters from username %s\n", user);
fprintf(stdout, "userLetters has length %d\n", sizeof(userLetters)/sizeof(int));

这是输出:

user has length 6
Created userLetters from username abcdef
userLetters has length 2

最佳答案

sizeof(userLetters)

给你sizeof(pointer)而不是sizeof(array)

在进行动态内存分配时,您会这样做

int *p = malloc(sizeof(int) * n); 

所以n是数组中元素的数量。

关于c - 在 C 中创建动态数组(指针)/调整其大小时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28337731/

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