gpt4 book ai didi

c - 根据另一个数组的大小分配 C 数组

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

我用 C 写了一个方法,可以从字符串中删除字符

char* removeChars(char input[], char remove[]) 
{
int src, dst = 0;
int size = strlen(input);
bool flags[128];

char output[18]; // <- This should be output[size]!

int i;
for(i=0; i<128; i++) {
flags[i] = false;
}

int j=0;
while(remove[j] != '\0') {
flags[remove[j]] = true;
j++;
}

for(src=0; src<size; src++) {
if(flags[input[src]] != true) {
output[dst++] = input[src];
}
}
return output;
}

我遇到的一个问题是,当我尝试使用 size(即 char output[size])设置输出数组的大小时,输出数组似乎总是有零个元素。它似乎只有在我指定特定尺寸(如 18)时才有效。我应该改用 strcpy 还是 malloc?如果可以,应该怎么做?

最佳答案

char *output = malloc(sizeof(char) * (size+1));

如果您希望使用size 动态分配内存。使用完此内存后,请释放它。

free(output);

关于c - 根据另一个数组的大小分配 C 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27177702/

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