gpt4 book ai didi

c - 如何使用指针清除字符数组?

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

我有一个指向字符数组的字符指针。我想清除字符数组,然后将字符串复制到其中的一些其他数组。memset 不适用于 char 指针。是否有其他方法可以做到这一点?

int main(){

char a[100] = "coepismycollege";
char *p;
p = a;
test(p);
printf("After function : %s", a);
}
void test(char *text){
char res[120] = "stackisjustgreat";
printf("text = %s\nres = %s\n", text , res);
memset(&text, 0 , sizeof(*text));
strcpy(text, res);
}

输出应该是:stackisjustgreat
提前致谢。

最佳答案

sizeof(*text) 将始终为 1(与 sizeof(char) 相同)。但是,如果您打算仅将字符串的第一个字节设为 null,这就足够了。

memset 的第一个参数是指向内存块开始的指针,而 text 已经是一个指针,所以 memset(text, 0 , strlen(text )); 是正确的(没有 &)

但是,memset 毫无意义,因为接下来的 strcopy 无论如何都会覆盖它。

关于c - 如何使用指针清除字符数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46136959/

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