【发布时间】:2021-03-10 11:08:53
【问题描述】:
void test(char arr[]){
;
}
int main()
{
test("abc");
return 0;
}
abc 是一个字符串常量,因此将其传递给函数将使arr 成为堆上指向"abc" 的指针,但我希望它在堆栈上(我想对其进行字符串连接)
- 如何在堆栈上存储
arr - 设置为
char arr[3]或arr[ (any size) ]也有效果吗?因为我的编译器允许这样做,而我没有注意到。
【问题讨论】:
-
定义一个本地数组
char s[] = "abc";并传递给test。但是听起来你可能想让它更大以进行连接:char s[100] = "abc"; -
我可以这样做,但我这样做是为了挑战,挑战的测试直接像 test("abc") 一样。
-
然后你需要在函数中做它并在那里复制输入。作为以下答案中的第二种方法
-
你想解决什么问题?
-
@kltt accum("RqaEzty") -> "R-Qq-Aaa-Eeee-Zzzzz-Tttttt-Yyyyyyy"
标签: arrays c memory stack heap-memory