gpt4 book ai didi

c - 使用指针对函数(下图)进行单元测试

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

我有这个函数可以将字符串更改为所有小写。

我正在尝试为此函数创建一个单元测试,但我认为我传递的参数错误,并且出现此错误。

Segmentation Fault (core dumped)

这是我的代码。

void example (char const * str1, int length, char * str2) {
int i;
for(i = 0; i < length; i++) {
*(str2 + i) = putchar(tolower( *(str1 + i) ));
}
}

void testexample() {
char * str1 = "TEST";
char * str2 = "";
example( str1, 4, str2);
printf("%s\n", *str2);
}

int main() {
testexample();
return 0;
}

str1是原始字符串,n是字符串的长度,str2是str1的全小写版本。

我已经被困在试图解决这个问题有一段时间了。

我很感激任何帮助。谢谢。

最佳答案

在你的主要部分:

char * str2 = "";

然后您将 str2 作为参数传递,但它的存储空间太小,并且该存储空间进一步是只读内存(指向文字)。结果就是你的崩溃。使用:

char str2[32] = 0;

或您需要的任何长度,包括空终止字符。

关于c - 使用指针对函数(下图)进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42373676/

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